OVH Cloud OVH Cloud

[Debian] Reconstruire la liste des paquets installes

19 réponses
Avatar
Remi Moyen
Salut,

Suite à une tentative de changement de noyau (voir mes derniers posts,
"Vieille machine et changement de noyau"), j'ai un disque dur qui a fini
par claquer. Grrr. Bon, il était peut-être déjà pas très frais avant,
n'empêche qu'il a claqué quand j'ai changé de noyau.

Bref, je suis en train de bricoler pour remettre le système d'aplomb.
Y'avait sur ce disque un certain nombre de partitions de donnée (dont,
putain, un peu plus de 300 CDs dont je m'étais paluché l'encodage un par
un...), mais surtout, y'avait /var.

Du coup, évidemment, il m'a fallu d'abord recréer quelques fichiers dans
le nouveau /var, pour que divers services se lancent bien. Mais surtout,
je me suis rappellé que c'est dans /var qu'apt (ou dpkg) stocke les
paquets disponibles, téléchargés, et surtout, surtout, installés !

Actuellement, si je fais, par exemple, un "apt-get install login", il me
dit qu'il va télécharger pleins de paquets, et installer des tonnes de
trucs. Évidemment, login est déjà installé, je vois mal un système tourner
sans !! Mais c'est normal : n'ayant plus la liste des paquets installés,
il considère que je n'en ai aucun.

Je cherche donc comment faire pour reconstituer la liste des paquets
actuellement installés sur mon système, à partir *uniquement* de
l'arborescence de fichiers existants. Je ne sais pas trop comment faire
(je pense à un truc bourrin, qui irait chercher pour chaque fichier dans
quel paquet il se trouve, et qui reconstruirait une liste probable).

D'autre part, si quelqu'un à une idée pour arriver à récupérer les données
qui étaient sur mon disque qui est mort, sachant que, j'ai testé sur deux
machines différentes, il n'est même plus reconnu dans le bios... ? L'idée
de devoir repasser tous mes CDs un par un pour les encoder me donne des
boutons...

Merci !
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

9 réponses

1 2
Avatar
Nicolas George
Remi Moyen wrote in message
:
Argh, oui, j'y pensais plus. Et y'a pas moyen de récupérer juste les
scripts à partir des paquets ?


ar p $package.deb control.tar.gz | tar tz

(ou autre chose que t)

Avatar
Remi Moyen
On Tue, 10 Aug 2004, Remi Moyen wrote:

Je cherche donc comment faire pour reconstituer la liste des paquets
actuellement installés sur mon système, à partir *uniquement* de
l'arborescence de fichiers existants. Je ne sais pas trop comment faire


J'ai fini par trouver quelques trucs sur le net, et en particulier cette
page :
http://www.linuxmafia.com/faq/Debian/package-database-rebuild.html

Ceci dit, si quelqu'un à d'autres idées ou des commentaires, je suis aussi
preneur...

D'autre part, si quelqu'un à une idée pour arriver à récupérer les données
qui étaient sur mon disque qui est mort, sachant que, j'ai testé sur deux
machines différentes, il n'est même plus reconnu dans le bios... ? L'idée
de devoir repasser tous mes CDs un par un pour les encoder me donne des
boutons...


Et ce problème-là, j'ai pas encore trouvé de pistes vraiment
satisfaisantes.
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

Avatar
Vincent Bernat
OoO En cette fin de matinée radieuse du mardi 10 août 2004, vers
11:22, Remi Moyen disait:

Tu peux récupérer la liste des paquets en regardant
/usr/share/doc. Chaque paquet y a laissé quelque chose. Pour les
numéros de version, il y a le changelog.Debian.gz dans chaque
répertoire.


Mouais. Mais rien d'automatique ? Faut que je me bricole moi-même le
script qui fera ça ?


Je n'ai rien sous la main.

Argh, oui, j'y pensais plus. Et y'a pas moyen de récupérer juste les
scripts à partir des paquets ? Ils n'ont pas été modifiés, je crois, lors
de leur installation, donc il devrait être possible de les extraire des
paquets tout seuls, non ?


Sans doute que si, mais cela rajoute à la complexité du bidule. Sans
compter qu'il te manquera encore la base debconf et je ne sais quoi
d'autre.

Il me semble que le plus simple est de réinstaller l'intégralité des
paquets (dont tu connais la liste).


Mouais... Est-ce que ça ne risque pas de perturber des choses, de
réinstaller des paquets dont les fichiers sont déjà là, mais qui ne sont
pas enregistrés dans la base des paquets installés ? Typiquement, est-ce
qu'il ne va pas écraser brutalement tous les fichiers de configuration
actuels (en se disant "ce paquet n'est pas installé, donc ce fichier non
plus, donc je mets le fichier standard"), y compris ceux que j'ai
personnalisés ?


Aucun risque de ce côté, les paquets Debian ne sont pas autorisés à
écraser un fichier de configuration, fut-il enregistré ou non. Si un
paquet fait ça, tu peux remplir un bug avec "serious policy
violation".

Évidemment, je peux faire une copie brutale de /etc avec laquelle je
ré-écraserais tout après mes réinstallations, mais comme je pense que je
ne retrouverais pas tous les paquets du premier coup (certains me
reviendront en tête à l'usage, plus tard -- quoique, avec
/usr/share/doc...), ça risque d'être un peu lourd de faire ça à chaque
fois.


Tu as normalement tout dans /usr/share/doc.

Genre ls /usr/share/doc | dpkg --set-selection
--
GARLIC GUM IS NOT FUNNY
GARLIC GUM IS NOT FUNNY
GARLIC GUM IS NOT FUNNY
-+- Bart Simpson on chalkboard in episode 7G13


Avatar
Remi Moyen
On Tue, 10 Aug 2004, Vincent Bernat wrote:

Mouais... Est-ce que ça ne risque pas de perturber des choses, de
réinstaller des paquets dont les fichiers sont déjà là, mais qui ne sont
pas enregistrés dans la base des paquets installés ? Typiquement, est-ce
qu'il ne va pas écraser brutalement tous les fichiers de configuration
actuels (en se disant "ce paquet n'est pas installé, donc ce fichier non
plus, donc je mets le fichier standard"), y compris ceux que j'ai
personnalisés ?


Aucun risque de ce côté, les paquets Debian ne sont pas autorisés à
écraser un fichier de configuration, fut-il enregistré ou non. Si un
paquet fait ça, tu peux remplir un bug avec "serious policy
violation".


Oui, en effet. Par contre, la réinstallation des paquets écrase
tranquillement les configs dans /etc/default (tous les paramètres rentrés
lors de l'étape "setting up ..." par debconf). J'espère que je n'avais pas
mis autre chose que les paramètres par défaut (sauf là où c'est
évident)... gasp...

De toute façon, si j'arrive à récupérer un système à peu près correct, je
serais déjà content !
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."


Avatar
Glennie Vignarajah
Christophe CUOQ a écrit:

Pour ton information tu peux créé une disquette Ghost qui boot sous
PC DOS et qui fait la copie en dehors de tout autre OS que ce soit
Windows, Linux ou autre chose. Par contre je doute que dd soit
capable d'ignorer les secteurs défectueux...


Il y ddrescue (que je n'ai pas testé) pour ça:
Description: copies data from one file or block device to another
dd_rescue is a tool to help you to save data from crashed partition.
It tries to read and if it fails, it will go on with the next
sectors where tools like dd will fail. If the copying process is
interrupted by the user it is possible to continue at any position
later. It can copy backwards.
--
Glennie
"Personne ne survit au fait d'être estimé au-dessus de sa valeur."

Avatar
BILL
Rémi Moyen a écrit:
On Tue, 10 Aug 2004, Remi Moyen wrote:



Salut,


D'autre part, si quelqu'un à une idée pour arriver à récupérer les données
qui étaient sur mon disque qui est mort, sachant que, j'ai testé sur deux
machines différentes, il n'est même plus reconnu dans le bios...



mettre le disque dur dans une poche de congélation et le mettre dans le
congélateur une heure puis testé sur la machine.

--
~~
(º¿º) BILLYSENG
{-------oo0--~--0oo-------} "sorry adresse anti spam"


Avatar
Remi Moyen
On Wed, 11 Aug 2004, BILL wrote:

D'autre part, si quelqu'un à une idée pour arriver à récupérer les données
qui étaient sur mon disque qui est mort, sachant que, j'ai testé sur deux
machines différentes, il n'est même plus reconnu dans le bios...



mettre le disque dur dans une poche de congélation et le mettre dans le
congélateur une heure puis testé sur la machine.


Buh ?

Tu parles sérieusement ? Un disque dur glacé peut marcher des fois ?

Je t'avoue que là, je n'arrive pas à savoir si tu te moques ou pas. J'ai
plutôt tendance à ne pas y croire, mais en même temps, je suis si ignorant
en matière de matériel que je n'ose pas te contredire...
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."



Avatar
Sebastien Kirche
On 11 Aug 2004, Remi Moyen wrote:

Tu parles sérieusement ? Un disque dur glacé peut marcher des fois ?

Je t'avoue que là, je n'arrive pas à savoir si tu te moques ou pas. J'ai
plutôt tendance à ne pas y croire, mais en même temps, je suis si ignorant
en matière de matériel que je n'ose pas te contredire...


Non, ce n'est pas une blague, j'ai aussi entendu parler de dépannage de la
dernière chance comme ça. C'est comme la tape sur le disque ou une rotation
brusque d'un vieux disque collé.
Si ça repart, n'éteint pas et sauve aussitôt.

Pour ma part j'ai un jour fini (Ph|F)antasmagoria après avoir mis le
dernier cd au freezer : l'utilisation prolongée dans un lecteur cdrom qui
chauffait assez faisait que le lecteur n'arrivait plus à accéder au
contenu. Le jeu se bloquait plusieurs secondes ou dizaines de secondes à
chaque lecture d'une vidéo.

Sébastien Kirche

Avatar
atouret
BILL wrote in message news:...
Rémi Moyen a écrit:
On Tue, 10 Aug 2004, Remi Moyen wrote:



Salut,


D'autre part, si quelqu'un à une idée pour arriver à récupérer les données
qui étaient sur mon disque qui est mort, sachant que, j'ai testé sur deux
machines différentes, il n'est même plus reconnu dans le bios...



mettre le disque dur dans une poche de congélation et le mettre dans le
congélateur une heure puis testé sur la machine.


Trouve sur le manuel de reference de debian

6.4.9 Enregistrer/copier la configuration du système

Pour faire une copie locale de l'état de la sélection des paquets :

$ dpkg --get-selections "*" >myselections # ou utiliser *

"*" inclut aussi les noms des paquets à purger dans myselections.

Vous pouvez transférer ce fichier vers un autre ordinateur, et l'installer avec :

# dselect update
# dpkg --set-selections <myselections
# apt-get -u dselect-upgrade # ou dselect install

AT



1 2