Pourquoi empêcher la mise à jour d'un paquet ? Supposons que vous installiez un paquet plus ancien que la version disponible dans les dépôts Debian, Ubuntu ou Linux Mint, ou que vous sachiez qu'une mise à jour pose problème et que vous vouliez mettre à jour tous les paquets moins un (ou deux, trois…).
Voici un exemple. J'utilise également le navigateur Chromium Correctifs d'accélération matérielle du PPA Saiarcot895-dev dans Ubuntu 18.10. Pour que l'accélération matérielle fonctionne avec les pilotes Nvidia, un package vdpau-va-driver corrigé est requis, qui n'est pas encore disponible dans ce PPA pour le dernier Ubuntu 18.10. Heureusement, le package Ubuntu 18.04 peut être installé dans Ubuntu 18.10, mais chaque mise à niveau via "apt upgrade" ou en utilisant le Software Updater met à jour ce package, ce que je ne veux pas. Donc, dans ce cas, je garderais ce paquet à l'écart des mises à jour afin de mettre à jour tous les autres paquets sans avoir à m'en soucier.
Notez qu'empêcher un package de futures mises à niveau peut entraîner des problèmes dans certaines situations si le package que vous détenez est utilisé comme dépendance d'un autre package pouvant être mis à niveau. Essayez donc de ne pas empêcher trop de paquets de se mettre à niveau, en particulier les bibliothèques.
De la même série :Comment trouver des packages disponibles à partir de la ligne de commande dans Debian, Ubuntu ou Linux Mint [APT]
Voici 3 façons d'empêcher la mise à jour d'un paquet dans Debian, Ubuntu, Linux Mint.
1. Empêcher les mises à jour de packages à l'aide d'une interface graphique :Synaptic Package Manager
Synaptic Package Manager, un programme graphique de gestion de packages Gtk pour apt, peut verrouiller les packages, ce qui les empêche d'être mis à jour.
Il est important de noter que l'utilisation de Synaptic pour verrouiller les packages n'empêche pas leur mise à jour à partir de la ligne de commande - en exécutant apt upgrade
ou apt-get upgrade
mettra toujours à jour un paquet qui est verrouillé dans Synaptic. Le verrouillage des packages dans Synaptic empêche les mises à niveau de packages à l'aide de l'application de mise à jour logicielle d'Ubuntu et éventuellement d'autres gestionnaires de packages graphiques. Cependant, cela n'empêchera pas la mise à jour des packages à l'aide de l'application Linux Mint Update Manager. Je recommande donc d'utiliser apt-mark
ou dpkg
(voir ci-dessous) pour empêcher la mise à jour des packages.
Vous pouvez installer le gestionnaire de paquets Synaptic avec cette commande :
sudo apt install synaptic
Pour empêcher la mise à jour d'un paquet avec Synaptic, recherchez-le, sélectionnez le paquet et cliquez sur le menu Synaptic Package -> Lock Version
:
Vous pouvez également déverrouiller le package de la même manière.
Pour afficher tous les paquets bloqués dans Synaptic, cliquez sur Status
en bas à gauche, puis cliquez sur Pinned
au dessus de Status
Rubrique :
2. Empêcher la mise à jour d'un paquet avec apt-mark
Empêcher la mise à jour des packages avec apt-mark devrait les empêcher d'être mis à jour à l'aide du logiciel de mise à jour d'Ubuntu, ainsi que les mises à niveau de la ligne de commande (apt upgrade
/ apt-get upgrade
).
Vous pouvez utiliser un package pour les futures mises à niveau (et pour la suppression automatique) avec apt-mark
avec cette commande :
sudo apt-mark hold PACKAGE
Remplacez PACKAGE
avec le paquet que vous ne voulez pas mettre à jour.
Vous pouvez vérifier quels packages sont marqués comme hold
(afin qu'ils ne soient pas mis à jour) par :
apt-mark showhold
Pour supprimer une suspension (afin que le package puisse être mis à jour), utilisez :
sudo apt-mark unhold PACKAGE
Pour les deux hold
et unhold
Vous pouvez spécifier plusieurs packages, tout comme installer un logiciel avec apt
(séparez les packages par un espace).
3. Empêcher les mises à jour de paquets avec dpkg
Il y a quelque temps, certains gestionnaires de paquets graphiques ignoraient le statut apt-mark-hold. Je ne sais pas si c'est toujours le cas, mais juste pour être sûr (et au cas où vous utilisez une ancienne version Debian / Ubuntu / Linux Mint), il existe un autre moyen d'obtenir des mises à jour de paquets dans Ubuntu, Linux Mint ou Debian ici empêcher :dpkg.
Pour empêcher la mise à jour d'un paquet avec dpkg, utilisez :
echo "PACKAGE hold" | sudo dpkg --set-selections
Remplacez PACKAGE
avec le paquet que vous ne voulez pas mettre à jour.
Vous pouvez afficher tous les paquets bloqués avec cette commande :
dpkg --get-selections | grep hold
Pour déverrouiller (autoriser la mise à niveau du package), utilisez :
echo "PACKAGE install" | sudo dpkg --set-selections
pas comment apt-mark
, cette solution ne permet pas de spécifier plusieurs packages en même temps.