J'essaie de trouver un moyen d'obtenir une liste des paquets qui ne sont plus disponibles dans les référentiels que j'ai activés. Ce poste de travail a déjà été testé dans de nombreuses versions d'Ubuntu et de nombreux référentiels tiers ont été ajoutés et supprimés. J'aimerais obtenir une liste des logiciels que je possède à partir de ces référentiels supprimés, afin de pouvoir le nettoyer ou rajouter les référentiels appropriés.
aptitude search '~o'
L'aptitude dispose de recherches très puissantes. Malheureusement, la syntaxe est un peu compliquée et vous devez creuser au-delà de la page de manuel pour trouver la documentation, mais cela en vaut la peine.
apt-show-versions peut aussi être utile:
apt-show-versions | grep 'No available version'
Si vous avez aptitude installé, utilisez,
aptitude search '?obsolete'
ou sa forme courte
aptitude search '~o'
Voici un exemple de sortie
i A gcc-4.7-base - GCC, the GNU Compiler Collection (base package)
id libdb4.7 - Berkeley v4.7 Database Libraries [runtime]
i libudev0 - libudev shared library
Le premier caractère de chaque ligne indique l'état actuel du package. Les états les plus courants sont:
Le deuxième caractère indique l'action à exécuter sur le package, le cas échéant, sinon un espace est affiché. Les actions les plus courantes sont:
Si le troisième caractère est A, le paquet a été installé automatiquement.
Pour une liste complète des indicateurs d'état et d'action possibles, reportez-vous à la section Accès aux informations sur les paquetages du guide de référence d'aptitude.
Pour obtenir une liste des applications qui ne se trouvent pas dans un référentiel enregistré ou un PPA, procédez comme suit:
Sudo apt-get install apt-show-versions
apt-show-versions | grep 'No available version'
Cela devrait produire un texte comme ceci:
app1 1.0.0.14 installed: No available version in archive
app23 0.3.6 installed: No available version in archive
app332 7.0.9377 installed: No available version in archive
Pour moi, cela a fonctionné et a montré trois applications que j'ai installées à l'aide de packages DEB et qui n'étaient pas disponibles dans un Repo ou un PPA.
Rappelez-vous cependant qu'il est impossible de vérifier tous les programmes, uniquement ceux qui sont passés par dpkg
. Par exemple, certaines applications sont installées simplement en les extrayant dans les dossiers appropriés, ou d’autres utilisent un bin ou un script d’installateur autonome. Le meilleur moyen consiste donc à conserver vous-même une liste des applications que vous avez installées via une méthode autre que APT.
Comme mentionné précédemment, apt-get search n'est pas une bonne méthode pour vérifier si un paquet est toujours disponible. De plus, j'ai tout ajouté à une seule ligne:
for i in `dpkg -l | grep '^i' | awk '{ print $2 }'`; do apt-cache show $i > /dev/null || echo $i; done
Il y a peut-être un moyen plus propre, mais vous pouvez le faire par cœur
dpkg -l | cut -f 3 -d ' ' > installed
xargs -n 1 --replace=X apt-cache search ^X$ < installed | cut -f 1 -d ' ' > available
diff installed available
Nettoyez les premières lignes du fichier installed
: il aura des en-têtes.
Bonus si quelqu'un peut corriger ma coloration syntaxique ...
Plus d'infos pour enquêter.
ubuntu-support-status echo "Paquets $ (Sudo apt-mark showmanual | wc -l) marqués comme" installés manuellement "."
... ubuntu-support-status et apt-mark peuvent nécessiter une installation.
Sudo apt list --manual-installed | grep -v cosmic
Ou quoi que Word apparaisse le plus dans Sudo apt list --manual-installed
grep -v filtre tout mot spécifié.