En raison de bug # 693758 , je voudrais empêcher apt-get upgrade
et Update Manager de mettre à jour le paquet "libgtk2.0-0".
Comment cela peut il etre accompli?
Il y a quatre façons de retenir des paquets: avec dpkg, apt, aptitude ou dselect.
Mettre un colis en attente:
echo "<package-name> hold" | Sudo dpkg --set-selections
Enlevez la cale:
echo "<package-name> install" | Sudo dpkg --set-selections
Affichez le statut de vos colis:
dpkg --get-selections
Afficher le statut d'un seul paquet:
dpkg --get-selections | grep "<package-name>"
Tenir un colis:
Sudo apt-mark hold <package-name>
Enlevez la cale:
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] select.
Les approches suivantes sont limitées en ce que verrouiller/conserver un paquet dans aptitude ou synaptic n'affecte pas apt-get/apt.
Tenir un colis:
Sudo aptitude hold <package-name>
Enlevez la cale:
Sudo aptitude unhold <package-name>
Allez dans Gestionnaire de paquets Synaptic (Système> Administration> Gestionnaire de paquets Synaptic).
Cliquez sur le bouton de recherche et tapez le nom du paquet.
Lorsque vous trouvez le package, sélectionnez-le et accédez au menu Package et sélectionnez Version verrouillée.
Ce paquet n'apparaîtra plus 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 enlever la cale:
Sudo -i
echo "wine install" | dpkg --set-selections
Je recherchais la même chose et, après de nombreuses recherches, j'ai constaté qu'en utilisant la syntaxe suivante, vous pouvez interdire une version en particulier mais autoriser la prochaine mise à jour:
Paquetage: compiz-plugins-main Pin: version 1: 0.9.7.0 ~ bzr19-0ubuntu10.1 Priorité de la broche: -1
Cela va dans le fichier/etc/apt/preferences.
Installez synaptic
en utilisant Sudo apt-get install synaptic
.
Exécutez-le à l'aide de gksudo synaptic
et dans le champ de recherche, localisez le package que vous souhaitez verrouiller, c'est-à-dire: gedit
Dans le menu du paquet, sélectionnez Version verrouillée:
Et c'est tout, la version actuellement installée au moment du verrouillage restera installée même pendant les mises à niveau.
Empêcher l’installation d’un paquet est appelé "maintien du paquet" et il est très simple à faire:
écho nom du paquet tenir | dpkg --set-selections
... où * nom_package * est le nom du paquet que vous souhaitez empêcher l'installation.
Note: la commande ci-dessus suppose les privilèges root. En d'autres termes, vous devrez probablement taper Sudo su
avant de l'exécuter.
Depuis quelque temps, apt-get
est remplacé par apt
. Par exemple, je souhaite empêcher la mise à jour de Firefox vers la version supérieure à 56, car de nombreux add-ons, tels que "Onglets" ne fonctionnent plus. avec le nouveau Firefox 57 (voir "Mise à jour WebExtensions").
Il est possible de contenir plusieurs packages avec une commande et d'utiliser des caractères génériques.
Sudo apt-mark hold firefox firefox-locale-*
Si vous désiriez les récupérer plus tard, ce serait la commande:
Sudo apt-mark unhold firefox firefox-locale-*
Je vous synaptic vous pouvez geler la version d'un paquet spécifique, je ne suis pas sûr à 100% de savoir si cela modifiera apt-get mais cela arrêtera définitivement le gestionnaire de mise à jour.
Pour geler un paquet, sélectionnez-le dans Synaptic, puis ouvrez le menu du paquet et sélectionnez Geler la version.
J'espère que cela t'aides
edit: This question 16668 traite une situation similaire
Voir les bogues # 75332 , # 158981 et # 72806 .
Le résumé est que le maintien au niveau d'apt-get/aptitude ne déclenche pas le statut de maintien dans dpkg (voir le bogue 72806 en particulier) et que le statut de mise à jour-manager est lu par dpkg.
la solution de contournement est exécutée en tant que root: echo "package hold" | dpkg --set-selections
Tout ce que vous avez toujours voulu savoir sur "conserver" et "épingler" des packages dans des versions spécifiques: https://help.ubuntu.com/community/PinningHowto
Vous pouvez utiliser sur aptitude le "remplacement spécifique", comme ceci:
aptitude reinstall ~i Oracle-Java8-jre:
Ceci est une utilisation unique (non stockée pour les réinstallations futures), 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 à Keep, le paquet sera momentanément dans un état de garder une aptitude n'essaiera pas de l'installer.
Une très bonne chose si vous pensez que votre système a été compromis.
Si vous avez installé Synaptic, vous pouvez sélectionner le package et utiliser le menu Package -> Verrouiller la version pour empêcher sa mise à jour.
Vous pouvez installer Synaptic avec Sudo apt-get install synaptic. Personnellement, je le trouve plus utile que le Centre logiciel ... là encore, je suis assez vieux. :)
De temps en temps, on peut vouloir retenir tous les paquets actuellement installés. Voici comment.
Commencez par enregistrer 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
Un cas d'utilisation pour cela pourrait être lors de la création d'un instantané VM ou Amazon AMI pour migrer d'un QA vers un environnement de production.
Ajout de détails aux commentaires de @ soger relatifs à Ubuntu 16.04.
Ubuntu 16.04 n'a pas de fichier/etc/apt/preferences existant par défaut. Si vous n'en avez pas actuellement, créez simplement un nouveau fichier et complétez-le avec une strophe telle que décrite par @soger pour exclure le package donné et ses dépendances des mises à jour.
Ensuite, lancez apt update
et vous êtes GTG. : 0)
Par exemple, je dispose d’un serveur Ubuntu 16.04.5 LTS avec une carte vidéo Intel intégrée et d’une carte NVidia. La carte NVidia est la seule utilisée. Le serveur utilise également des pilotes CUDA. J'ai eu un problème où apt
a continué à insister
va-driver-all
(Pilotes Intel) nécessitait une mise à jour, mais il n’était pas possible de déterminer quelle version installer. Cela me rendait fou et je n’avais de toute façon pas besoin des pilotes Intel. J'ai saisi ce texte dans le fichier de préférences et vidé le fichier, le problème a été résolu.
Package: va-driver-all
Pin: release *
Pin-Priority: -1