Depuis une clé USB en direct, et sans utiliser les programmes installés d'Ubuntu tels que dpkg
, dpkg-query
, dselect
, aptitude
, apt-get
ou tout autre (car ils sont tous Illegal instruction
cassé ), comment lire les listes de paquetages que apt
lit, en tant que liste afin de cataloguer les paquetages installés, à réinstaller ultérieurement?
Reading package lists... Done
Building dependency tree
Reading state information... Done
où est la base de données locale des paquets? est presque une réponse parfaite:
/var/lib/dpkg/status
est modifié par dpkg si vous modifiez l’état d’un paquet, c’est-à-dire que vous l’installez, le supprimez, le marquez pour une action, ...
Je ne veux pas simplement lister les paquets "modifiés", mais aussi les paquets dépendants, tout l'état du système, etc. Est-ce que cela est contenu par dpkg/status
?
Package:
entrées; sur le système cible, il possède 3 600 entrées Package:
et sur le Live USB, il ne compte que 2 000 entrées. Cela semble juste, sauf que je crains que cela ne répertorie pas tous les paquets.Je ne cherche ni le cache .deb
téléchargé, ni le cache
pour dpkg
/apt
qui contient des fichiers de données temporaires - ceux-ci ne donnent pas l'état complet du système.
/var/lib/apt/lists
semble contenir une liste de sources et de paquetages, ce qui est presque parfait, sauf que de nombreuses analyses sont nécessaires pour obtenir une liste de noms de paquets. Est-ce la meilleure option?
Le fichier /var/cache/apt/pkgcache.bin
existe, mais comme il s'agit d'un binaire généré, je ne pense pas que le copier dans une nouvelle installation suffira.
Voir man dpkg
:
Les autres fichiers répertoriés ci-dessous se trouvent dans leurs répertoires par défaut. Voir l'option _
--admindir
_ pour savoir comment modifier l'emplacement de ces fichiers.
_
/var/lib/dpkg/available
_ Liste des packages disponibles._
/var/lib/dpkg/status
_ États des packages disponibles.Ce fichier contient des informations indiquant si un package doit ou non être supprimé, s'il est installé ou non, etc. Voir la section Informations sur les packages pour plus d'informations. Le fichier d'état est sauvegardé quotidiennement dans _
/var/backups
_. Cela peut être utile s'il est perdu ou corrompu en raison de problèmes liés aux systèmes de fichiers.
Vous pouvez cesser de vous inquiéter. Si le paquet n'est pas dans status
, dpkg
ne le sait pas. Du tout.
En passant, les "listes de paquets" dont apt s’occupe sont une chose différente: ce sont les listes qu’il a téléchargées à partir des sources dans _/etc/apt/sources.list
_, etc. et qui sont dans _/var/lib/apt/lists
_. Ceux-ci contiennent des informations sur les paquets dans les référentiels et n'ont rien sur le système local.
À propos de votre problème actuel, vous pouvez utiliser le dpkg
du système actif pour lire ce fichier, à l'aide de l'option _--admindir
_ mentionnée ci-dessus.