Je suis dans une situation où la liste des packages orphelins à supprimer apt-get autoremove
inclut un package que je souhaite conserver. Apparemment, j'ai accidentellement retiré un paquet qui en dépendait. Comment puis-je maintenant marquer le package comme explicitement souhaité, afin que apt-get autoremove
cela ne le supprime pas?
apt
package-management
bluenote10
la source
la source
Réponses:
Utilisation
apt-mark
Alors
Maintenant,
autoremove
je ne le supprimerai pas.Défaire
Maintenant
autoremove
, supprimera le package s'il ne s'agit pas d'une dépendance d'un autre package.la source
Quelques tentatives supplémentaires de Google ont permis de trouver une solution :
Il est soit possible d'installer simplement explicitement:
ou marquage comme installé manuellement via
apt
ne sera pas réinstallé, la sortie ressemblera à:la source
C'est déjà bien répondu, mais j'ai trouvé une situation où je ne voulais pas "marquer" beaucoup de paquets (puis les décocher après
autoremove
).Lorsque la liste des packages que vous souhaitez supprimer automatiquement est facilement définie, vous pouvez les diriger /
sed
/xargs
out.Je n'ai pas d'exemple complexe de nombreux packages, mais si j'ai le scénario suivant:
et je veux supprimer uniquement les
linux*
packages, je peux le faire:Donc, à partir d'ici, il est facile de les passer en
xargs
tant qu'arguments de ligne de commande au simpleapt-get remove -y
:Normalement, lors de l'utilisation
xargs
, je me prémunirais contre les espaces dans les arguments (par exemple,find ... -print0 | xargs -0 ...
), mais comme les noms de packages ne contiennent pas d'espaces, je suis à l'aise d'utiliser des arguments délimités par des sauts de ligne.(Je pense que d' autres situations, il serait plus approprié de « marque » une prise, le unhold les paquets. Cela peut aussi se faire avec des expressions rationnelles et
xargs
, mais est probablement plus l' ingénierie de la situation.)la source