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?
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
).