[RESOLU]Déterminer la liste des paquets d'un système "o

Salut à tous,

J’ai du récemment démonter les disque d’un serveur DEBIAN qui ne marchait plus pour remonter des disques neufs et réinstaller un système dessus.

Or j’avais des donnes importantes sur ces disques.

Donc j’ai vérifié et je peux accéder aux données en montant les disques sortis du serveur sur un système Linux tiers.

Est-ce que je peux récupérer la liste des paquets ?
(en gros je voudrais le résultat d’un “dpkg -l” pour résintaller les mêmes paquets sur le nouveau serveur)

Merci

$ ls /var/lib/dpkg/info/*.postinst | sed -e '1,$s|/var/lib/dpkg/info/\(.*\).postinst|\1|'te sort la liste des paquets ayant été installés

Tu peux aussi faire

$ grep "Status: install ok installed" -B 1 /var/lib/dpkg/status | grep Package qui te sort la liste des paquets installés.

Super !

Merci pour la rapidité et la précision !!

Je suis allé un peu vite.

Voici un test fait sur un serveur Debian:

test:~# dpkg -l |wc -l 981

test:~# grep "Status: install ok installed" -B 1 /var/lib/dpkg/status | grep Package |wc -l 951

test:~# ls /var/lib/dpkg/info/*.postinst | sed -e '1,$s|/var/lib/dpkg/info/\(.*\).postinst|\1|'|wc -l 666

Donc la version numéro 2 (grep “Status: install ok installed” -B 1 /var/lib/dpkg/status | grep Package ) renvoit plus de paquets, mais il en manque encore…

une idée ?

On approche:

test:~# dpkg -l | grep ii | wc -l 975 test:~#

Salut,

pour envoyer la liste vers un fichier .txt

bonjour,
peut-être que tu ne passera pas à côté des paquets essentiels, le nombre manquants sera complété par le jeu des dépendances, non ?

A vrai dire, j’espère aussi…
Mais je n’en ai pas la certitude !
Rien ne me dit que l’exemple ci-dessous est représentatif de ce qu’il se passera avec mon serveur.

On voit qu’il n’y a que 25 paquets de différence entre un:

et

Sachant que je ne peux pas avoir le “dpkg -l” de mon ancien système, j’aimerai vraiment pouvoir trouver ces paquets d’une façon ou d’une autre…

Bizarre effectivement, la différence est chez moi

[quote]-base-files
-base-passwd
-bash
-bsdutils
-coreutils
-debianutils
-diff
-dpkg
-e2fsprogs
-findutils
-grep
-gzip
-hostname
-login
-mktemp
-mount
-ncurses-base
-ncurses-bin
-perl-base
-sed
-sysvinit
-sysvinit-utils
-tar
-util-linux
[/quote]
ce qui correspond aux paquets essentiels (installés à l’installation). Ces paquets seront là de toutes façon.
Tu les obtiens en rajoutant

grep "Essential:" -B 1 /var/lib/dpkg/status | grep Package  | awk '{print $2}'

Chez moi je n’ai pas de soucis

$ cat /var/lib/dpkg/status | grep -i "status: install ok installed" | wc -l
661

$ dpkg -l | grep ii | wc -l
661

Effectivement:

test:~# grep "Essential:" -B 1 /var/lib/dpkg/status | grep Package | awk '{print $2}' |wc -l 24 test:~# grep "Status: install ok installed" -B 1 /var/lib/dpkg/status | grep Package |wc -l 951 test:~# dpkg -l|grep ii|wc -l 975 test:~#
24+951=975 !

Merci à tous

Un package qu’il soit qualifié comme essential ou non reste un package. Alors pourquoi vous ne vous contentez pas d’un grep -i “status: install ok installed”, qui fonctionne très bien ?

Parce que sur le Etch, le paquet est marqué essential avant d’être marqué installed. Il suffirait éventuellement de faire

Cela étant les essentiels sont par définition installés sur un système debian. Lui veut récupérer les paquets à rajouter en plus pour répliquer sont système.