En raison du bogue n ° 693758, je voudrais empêcher apt-get upgrade
Update Manager de mettre à jour le package "libgtk2.0-0".
Comment cela peut il etre accompli?
disable packages from the auto-update
En raison du bogue n ° 693758, je voudrais empêcher apt-get upgrade
Update Manager de mettre à jour le package "libgtk2.0-0".
Comment cela peut il etre accompli?
disable packages from the auto-update
Réponses:
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>
Afficher tous les forfaits en attente:
sudo apt-mark showhold
Avec dselect, ouvrez 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 au 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, accédez au menu Package et sélectionnez Verrouiller la version .
Ce paquet n'apparaîtra plus dans le gestionnaire de mise à jour et ne sera pas mis à jour.
devscripts
, un lot emballé est extrait en tant que paquet recommandé. Comme je n’ai pas besoin d’un serveur de courrier (postfix), je pourrais en désactiver l’installation en exécutant echo postfix hold | sudo dpkg --set-selections
avant d’exécuter sudo apt-get install devscripts
. Cette action de maintien ne persiste que pour cette installation. Après cette installation, les sélections sont réinitialisées.
apt-mark
ne supporte pas hold
dans la version 0.7.25 (Ubuntu Lucid)
apt-mark hold fglrx fglrx-amdcccle fglrx-dev && aptitude hold fglrx fglrx-amdcccle fglrx-dev
.
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
apt-get install wine=1.2.3
. Être en attente empêche apt-get (dist-)upgrade
de le changer.
/var/cache/apt/archives
) est indépendant des retenues, des mises à jour et autres, donc toutes les versions que vous avez téléchargées seront là jusqu'à ce que vous apt-get [auto]clean
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 spécifique mais autoriser la prochaine mise à jour:
Paquetage: compiz-plugins-main Pin: version 1: 0.9.7.0 ~ bzr19-0ubuntu10.1 Priorité de broche: -1
Cela va dans le fichier / etc / apt / preferences.
Installer synaptic
avec sudo apt-get install synaptic
.
Exécutez en utilisant gksudo synaptic
et dans la zone de recherche, localisez le paquet que vous voulez verrouiller, c'est-à-dire: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.
Empêcher l’installation d’un paquet est appelé "maintien du paquet" et il est très simple à faire:
echo nom_package hold | dpkg --set-selections
... où * nom_package * est le nom du paquet que vous souhaitez empêcher l'installation.
Remarque: la commande ci-dessus suppose les privilèges root. En d'autres termes, vous devrez probablement taper sudo su
avant de l'exécuter.
s/sudo su/sudo -s/g
(ou sudo -i
). ( -i
donnera un shell de connexion, -s
ne sera pas).
Depuis un certain temps apt-get
est remplacé par apt
, donc par exemple que je veux empêcher Firefox de mettre à jour à la version ci - dessus 56, parce que beaucoup d'add-ons, comme « Groupes Tab » ne fonctionnent pas plus avec le nouveau Firefox 57 (voir « WebExtensions Mise à jour").
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 retirer plus tard, ce serait la commande:
sudo apt-mark unhold firefox firefox-locale-*
Je 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
modifier: Cette question 16668 concerne une situation similaire
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
Voir les bogues n ° 75332 , n ° 158981 et n ° 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 update-manager est lu par dpkg.
La solution de contournement est exécutée en tant que root:
echo "package hold" | dpkg --set-selections
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 paquetages 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 ne tentera 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é de machine virtuelle 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, courez apt update
et vous êtes GTG. : 0)
Par exemple, j'ai un serveur Ubuntu 16.04.5 LTS avec une carte vidéo Intel intégrée et 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
insistait
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 dingue et je n'avais de toute façon pas besoin des pilotes Intel. J'ai entré ce texte dans le fichier de préférences et vidé le problème, le problème est résolu.
Package: va-driver-all
Pin: release *
Pin-Priority: -1