En raison de bogue n ° 693758 , je voudrais empêcher apt-get upgrade
et Update Manager de mettre à jour le paquet "libgtk2.0-0".
Comment cela peut-il être réalisé?
En raison de bogue n ° 693758 , je voudrais empêcher apt-get upgrade
et Update Manager de mettre à jour le paquet "libgtk2.0-0".
Comment cela peut-il être réalisé?
Il existe quatre manières de retenir les paquets: avec dpkg, apt, aptitude ou dselect.
Mettre un paquet en attente:
echo "<package-name> hold" | sudo dpkg --set-selections
Supprimer le hold:
echo "<package-name> install" | sudo dpkg --set-selections
Afficher l’état de vos paquets:
dpkg --get-selections
Affiche l’état d’un seul paquet:
dpkg --get-selections | grep "<package-name>"
Tenez un paquet:
sudo apt-mark hold <package-name>
Supprimer le hold:
sudo apt-mark unhold <package-name>
Avec dselect, entrez dans l'écran [S] elect, trouvez le paquet que vous souhaitez conserver dans son état actuel et appuyez sur = ou H . Les modifications prendront effet immédiatement après la sortie de l'écran [S] elect.
Les approches suivantes sont limitées dans la mesure où le verrouillage / la tenue d’un paquet dans aptitude ou synaptic n’affecte pas apt-get / apt.
Tenez un paquet:
sudo aptitude hold <package-name>
Supprimer le hold:
sudo aptitude unhold <package-name>
Accédez à Gestionnaire de packages Synaptic (System & gt; Administration & gt; Gestionnaire de packages Synaptic).
Cliquez sur le bouton de recherche et tapez le nom du package.
Lorsque vous trouvez le package, sélectionnez-le et accédez au menu Package , puis sélectionnez Verrouiller la version .
Ce paquet ne sera plus affiché dans le gestionnaire de mise à jour et ne sera pas mis à jour.
Pour mettre un paquet "foo" en attente:
echo "foo hold" | dpkg --set-selections
Dans votre cas, nous allons mettre le vin en attente:
sudo -i
echo "wine hold" | dpkg --set-selections
Pour supprimer le blocage:
sudo -i
echo "wine install" | dpkg --set-selections
Je cherchais la même chose et après de nombreuses recherches, j'ai découvert qu'en utilisant la syntaxe suivante, vous pouviez interdire une version spécifique mais autoriser la prochaine mise à jour:
Package: compiz-plugins-main Pin: version 1:0.9.7.0~bzr19-0ubuntu10.1 Pin-Priority: -1
Cela va dans le fichier / etc / apt / preferences.
Installez synaptic
en utilisant sudo apt-get install synaptic
.
Exécuter en utilisant gksudo synaptic
et dans la zone de recherche, localisez le paquet que vous souhaitez verrouiller, par exemple: gedit
Dans le menu du package, sélectionnez Verrouiller la version :
Et c’est tout, la version actuellement installée au moment du verrouillage restera installée même pendant les mises à niveau.
Le fait d’empêcher l’installation d’un paquet est appelé "tenue de paquet" et il est très simple à faire:
echo package_name hold | dpkg --set-selections
... où * nom_package * est le nom du package que vous souhaitez empêcher l'installation.
Remarque: la commande ci-dessus suppose des privilèges root. En d'autres termes, vous devrez probablement taper sudo su
avant de l'exécuter.
Je suis synaptique, vous pouvez geler la version d'un paquet spécifique Je ne suis pas sûr à 100% si cela va modifier apt-get, mais cela arrêtera définitivement le gestionnaire de mises à jour.
Pour geler un paquet, sélectionnez-le dans synaptic, puis ouvrez le menu du paquet et sélectionnez la version figée.
J'espère que ça aide
edit: Cet question 16668 traite d'une situation similaire
Depuis un certain temps, apt-get
est remplacé par apt
, donc par exemple, je veux empêcher Firefox de mettre à jour vers une version supérieure à 56, car beaucoup de modules complémentaires, comme " Les groupes d'onglets " ne fonctionnent plus avec le nouveau Firefox 57 (voir" Mise à jour des extensions Web ").
Il est possible de stocker plusieurs paquets avec une seule commande et d'utiliser des caractères génériques.
sudo apt-mark hold firefox firefox-locale-*
Si vous souhaitez les retrouver plus tard, ce sera la commande:
sudo apt-mark unhold firefox firefox-locale-*
Tout ce que vous avez toujours voulu savoir sur le "maintien" et le "pinning" des paquets dans des versions spécifiques: lien
Voir les bogues # 75332 , # 158981 et # 72806 .
Le résumé indique que le niveau d’apt-get / aptitude ne déclenche pas le statut de maintien dans dpkg (voir le bogue 72806 en particulier) et update-manager lit le statut de dpkg.
La solution est exécutée en tant que root:
echo "package hold" | dpkg --set-selections
Si Synaptic est installé, vous pouvez sélectionner le package et utiliser le menu Package - & gt; Verrouiller la version pour empêcher sa mise à jour.
Vous pouvez installer Synaptic avec sudo apt-get install synaptic. Personnellement, je trouve cela plus utile que le Software Center ... Et puis, je suis assez vieux à l'école. :)
Vous pouvez utiliser sur aptitude le "remplacement spécifique", comme ceci:
aptitude reinstall ~i oracle-java8-jre:
Il s’agit d’une utilisation unique de (non stockée pour de futures réinstallations), conservez un remplacement spécifique, pour réinstaller tous les packages de votre système, mais pas oracle-java8-jre.
Si vous utilisez un remplacement spécifique, le paquet sera momentanément dans l’état de garder une aptitude ne tentera pas de l’installer.
Une très bonne chose si vous pensez que votre système a été compromis.
De temps en temps, on peut vouloir retenir tous les paquets actuellement installés. Voici comment.
Sauvegardez d'abord l'état actuel pour pouvoir annuler:
dpkg --get-selections > current_selections.txt
Ensuite, pour retenir tous les paquets:
dpkg --get-selections | sed -r "s/\tinstall/hold/" |dpkg --set-selections
Enfin, lorsque vous souhaitez revenir à l’état précédent:
dpkg --set-selections < current_selections.txt
Il peut s’agir d’un cas d’utilisation lors de la création d’un snapshot VM ou Amazon AMI pour migrer d’un environnement QA vers un environnement de production.
Lire d'autres questions sur les étiquettes package-management updates