web-dev-qa-db-fra.com

Comment obtenir la liste des paquets installés sur Ubuntu / Debian sans commande ou sans regarder pkg.log?

Je dois extraire la liste des paquets installés sur Ubuntu/Debian sans utiliser de commande ou sans consulter dpkg.log?

L’exigence de base est d’obtenir la liste des paquets installés sur le système d’exploitation Debian/Ubuntu à partir du fichier de base de données des paquets (le cas échéant). Je suis en mesure d’obtenir la liste des paquets disponibles à partir du fichier suivant.

/var/lib/dpkg/available

Mais ce fichier contient tous les packages y compris non installés.

Existe-t-il un autre fichier de base de données sur Debian/Ubuntu contenant la liste des packages uniquement installés?

1
Pro Account

Le fichier contenant les mêmes informations que celles fournies par la commande dpkg -l est /var/lib/dpkg/status. De la section FILES de man dpkg:

   /var/lib/dpkg/status
          Statuses of available  packages.  This  file  contains  information
          about  whether  a package is marked for removing or not, whether it
          is installed or not, etc. See section  INFORMATION  ABOUT  PACKAGES
          for more info.

          The  status  file  is  backed  up  daily in /var/backups. It can be
          useful if it's lost or corrupted due to filesystems troubles.

   The format and contents of a binary package are described in deb(5).

Mais votre exigence "sans commande" n'a pas beaucoup de sens car vous devrez écrire une commande pour l'analyser. Par exemple

awk -vRS= '/Status: install/ {print $2}' /var/lib/dpkg/status

sera approximativement équivalent à dpkg -l | awk '$1 == "ii" {print $2}' (ils seront différents dans l’ordre de tri et des suffixes d’architecture possibles tels que :AMD64).

1
steeldriver