3 votes

Debian a supprimé /var/lib/dpkg/info/, y a-t-il un moyen de sauver le système ?

J'ai supprimé accidentellement /var/lib/dpkg/info/, maintenant j'ai des problèmes avec l'installation/la suppression de paquets, il y a des erreurs, car je ne peux pas trouver les informations sur les paquets installés.

Y a-t-il un moyen de sauvegarder le système ou faut-il réinstaller complètement Debian ? :/

11voto

Insyte Points 9294

Vous devriez être en mesure de régénérer le répertoire en utilisant quelque chose comme ceci :

for i in $(dpkg -l|awk '/^ii/ {print $2}')
do
    apt-get --reinstall -y install $i
done

Ce que cet extrait devrait faire est de réinstaller tous les paquets que vous avez déjà installés. Il va également tout mettre à jour. Si vous ne voulez pas faire cela, vous devrez étendre le script pour installer la version spécifique que vous avez actuellement installée, ce qui n'est pas garanti pour fonctionner car ces paquets peuvent ne plus exister dans le référentiel.

Plus d'informations et une approche légèrement différente : http://people.adams.edu/~cdmiller/posts/Ubuntu-dpkg-recovery/

EDITAR: Conseil important tiré de l'article susmentionné :

Certains paquets ne s'installeront toujours pas correctement car il manque des éléments dans /var/lib/dpkg. En particulier, le paquet "ucf" est important pour permettre au noyau et peut-être à d'autres de s'installer correctement.

Sans /var/lib/dpkg/info/ucf.templates l'installation du noyau produit cette erreur :

failed to install/upgrade: User postinst hook script [/sbin/update-grub] exited with value 10

Installez ucf :

apt-get --reinstall install ucf

Cet article décrit la façon de récupérer après avoir complètement effacé todo de /var/lib/dpkg Cette étape supplémentaire peut donc ne pas s'appliquer à votre situation.

0 votes

Merci beaucoup pour votre réponse ! Vous avez sauvé ma journée ! Le script tournait depuis plus de 4 heures, mais il a fait 95% du travail ! +++

0voto

pabrams Points 101

Eh bien, ce jour est comme tous les autres, pourquoi ? parce que j'ai été confronté à un problème un peu similaire mais cette fois-ci lié à certains paquets avec le message suivant :

Log started: 2019-09-22  16:12:10
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'apt': Bad address
Log ended: 2019-09-22  16:12:10

La façon dont je l'ai résolu, était un peu similaire mais avec quelques différences telles que :

Au lieu de renommer le répertoire entier "/var/lib/dpkg/info/", j'ai juste déplacé les fichiers (noms de paquets) qui me causaient des problèmes, qui dans ce cas étaient les paquets "apt".

  • J'ai donc d'abord filtré les paquets liés au motif '^apt' :

    mlazo@mlazo-pc:~$ dpkg -l|awk '/^ii apt/ {print $2}' apt apt-config-icons apt-config-icons-hidpi apt-config-icons-large apt-config-icons-large-hidpi apt-transport-https apt-utils apt-xapian-index aptdaemon aptdaemon-data

  • Étant dans le répertoire "/var/lib/dpkg/info", j'ai créé un répertoire et déplacé les fichiers qui correspondaient à la liste précédente :

    cd /var/lib/dpkg/info mdkir ../info_back mv -v $(ls |grep -i "^apt") ../info_back/

  • Une fois les fichiers déplacés, je procède à l'exécution du processus de réinstallation :

    for x in $(dpkg -l| awk '/^ii apt/ {print $2}'); do apt-get install --reinstall ${x} -y ; done

  • Pendant le traitement, j'ai vérifié le fichier "/var/log/apt/term.log", obtenant les confirmations suivantes :

    mlazo@mlazo-pc:~$ tail -n 20000 /var/log/apt/term.log |grep -i "preparing to unpack .../apt" Preparing to unpack .../apt-config-icons_0.12.0-3ubuntu1_all.deb ... Preparing to unpack .../apt-config-icons-hidpi_0.12.0-3ubuntu1_all.deb ... Preparing to unpack .../apt-config-icons-large_0.12.0-3ubuntu1_all.deb ... Preparing to unpack .../apt-config-icons-large-hidpi_0.12.0-3ubuntu1_all.deb ... Preparing to unpack .../apt-transport-https_1.6.12_all.deb ... Preparing to unpack .../apt-utils_1.6.12_amd64.deb ... Preparing to unpack .../apt-xapian-index_0.47ubuntu13_all.deb ... Preparing to unpack .../aptdaemon_1.1.1+bzr982-0ubuntu19.1_all.deb ... Preparing to unpack .../aptdaemon-data_1.1.1+bzr982-0ubuntu19.1_all.deb ...

  • Une fois le processus de réinstallation terminé, j'ai procédé à l'exécution du processus de mise à niveau et j'ai obtenu un résultat positif :

    root@mlazo-pc:/var/lib/dpkg/info# apt-get upgrade .. .. .. Processing triggers for initramfs-tools (0.130ubuntu3.8) ... update-initramfs: Generating /boot/initrd.img-5.0.0-25-generic Processing triggers for libvlc-bin:amd64 (3.0.8-0ubuntu18.04.1) ...

Avec les étapes que j'ai exécutées précédemment, il a été achevé dans un intervalle de 30 minutes plutôt que de 4 heures.

J'espère que les étapes précédentes pourront être utiles à quelqu'un.

Meilleures salutations,

Manuel Lazo

1 votes

Pour autant que je sache, vous n'étiez pas confronté au même problème que celui décrit dans la question.

0 votes

J'ai corrigé ma réponse, merci pour vos commentaires.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X