J'essaie de trouver un moyen d'obtenir une liste des packages qui ne sont plus disponibles dans les référentiels que j'ai activés. Cette station de travail a utilisé plusieurs 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 j'ai de ces référentiels supprimés, afin de pouvoir les nettoyer ou rajouter les référentiels appropriés.
19
apt-show-versions | grep "newer than version in archive"
Pour obtenir une liste des applications qui ne se trouvent pas dans un référentiel enregistré ou un PPA, procédez comme suit:
Cela devrait produire du texte comme ceci:
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.
N'oubliez pas cependant qu'il est impossible de vérifier tous les programmes, uniquement ceux qui ont été exécutés
dpkg
. Par exemple, certaines applications sont installées en les extrayant simplement dans les dossiers appropriés, ou d'autres utilisent un bac ou un script d'installation autonome. La meilleure façon est donc pour vous de conserver une liste des applications que vous avez installées via une méthode autre qu'APT.la source
dpkg
packages installés localement . Une exception. Il répertorieskype-bin
, tandis queapt-cache policy skype-bin
montre clairement le repo partenaire Canonical. Je ne sais pas ce qui se passe. Problème multiarchitecture? Toujours +1 pourapt-show-versions
!Si vous avez installé aptitude ,
ou sa forme courte
Voici un exemple de sortie
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 stockée à effectuer sur l'emballage, le cas échéant, sinon un espace vide est affiché. Les actions les plus courantes sont:
Si le troisième caractère est A, le package a été automatiquement installé.
Pour une liste complète des indicateurs d'état et d'action possibles, consultez la section Accès aux informations de package dans le guide de référence d'aptitude.
la source
aptitude search ?obsolete
peut fonctionner en bash, mais vous devez utiliseraptitude search '?obsolete'
À partir d'Ubuntu 19.10, il est également possible d'exécuter
pour obtenir la liste des packages obsolètes.
Pour toute version, vous pouvez utiliser la doublure Bash suivante:
Pas besoin d'installer des packages supplémentaires pour cela, plus c'est relativement rapide. Cela trouvera également les packages partiellement installés (mais ne trouvera pas ceux qui n'ont que des fichiers de configuration restants; qui pourraient être modifiés facilement, cependant). Remarque: cela ne tient pas compte de l'architecture des packages.
Si vous souhaitez inclure des packages dont la version installée est différente de celle disponible dans les référentiels, vous pouvez utiliser l'une des options suivantes:
Utilisez apt moderne:
Une autre option consiste à exécuter
et lisez les noms des packages dans la section "Plus téléchargeable:".
la source
Plus d'informations pour enquêter.
... ubuntu-support-status et apt-mark peuvent nécessiter une installation.
la source
sudo
avecapt-mark showmanual
.ubuntu-support-status
répertorie le nombre de packages obsolètes, mais pas les noms des packages.ubuntu-support-status --help
Il peut y avoir un moyen plus propre, mais du haut de ma tête, vous pouvez le faire
Nettoyez les premières lignes du
installed
fichier: il aura des en-têtes.Bonus si quelqu'un peut corriger ma coloration syntaxique ...
la source
dpkg -l
pour obtenir une liste des packages installés, vous devez limiter les résultats aux lignes avec 'i' dans la deuxième colonne, car dpkg listera également les packages qui ne sont pas installés (peut-être supprimés mais non purgés) . à titre d'exemple, la modification de votre première commande pourdpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
qu'elle renvoie une liste de packages, qui ne sont PAS installés. (mais une fois)apt-cache search someinstalledpackage
retournera quelque chose même si le paquet n'est pas disponible à partir d'un dépôt, donc je ne pense pas que cela fonctionnera du tout.dpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
également certaines lignes d'en-tête.apt-cache search
pour chaque package séparément.Comme mentionné, la recherche apt-get n'est pas une bonne méthode pour vérifier si un package est toujours disponible. J'ai ajouté tout à une seule ligne:
la source
grep '^i'
man dpkg-query
pour plus d'informations.apt-cache show
ne sert ni à vérifier si le colis est disponible. Si vous désactivez le référentiel respectif et qu'aucun autre référentiel activé ne l'a, il affiche toujours le package.