Mise à jour bloquée – fichiers endommagés

Hej !

J’ai eu une erreur d’e/s lors de ma dernière MàJ. Du coup, j’ai passé un coup de fsck, qui m’a sorti une montagne d’erreurs, et depuis :

Extraction des modèles depuis les paquets : 100% Préconfiguration des paquets... dpkg : avertissement : le fichier contenant la liste des fichiers du paquet « libopenvg1-mesa:amd64 » étant manquant, il est considéré qu'aucun fichier du paquet n'est actuellement installé dpkg : erreur fatale irréversible, abandon : la liste des fichiers pour le paquet « libxvidcore4:amd64 » n'a pas de retour à la ligne en fin de fichier E: Sub-process /usr/bin/dpkg returned an error code (2)

J’fais quoi, maintenant ? :confused:

Salut,

Faire le ménage du côté de : /var/cache/apt/archives avant de refaire

apt-get update && apt-get upgrade :slightly_smiling:

Bah, j’ai spontanément commencé par un apt-get clean && apt-get update && apt-get dist-upgrade, qui n’a rien changé au problème. Compte tenu du message d’erreur, je dirais que ce sont les fichiers référençant les paquets installés qui sont endommagés, et ça, je ne sais pas comment c’est censé se nettoyer.

Peut-être réinstaller les paquets qui te posent problème:
libopenvg1-mesa:amd64
libxvidcore4:amd64

Puis ensuite les revirer.

Salut,

[quote=“Elzen”]J’ai eu une erreur d’e/s lors de ma dernière MàJ.

dpkg : avertissement : le fichier contenant la liste des fichiers du paquet « libopenvg1-mesa:amd64 » étant manquant, il est considéré qu’aucun fichier du paquet n’est actuellement installé
dpkg : erreur fatale irréversible, abandon :

la liste des fichiers pour le paquet « libxvidcore4:amd64 » n’a pas de retour à la ligne en fin de fichier
E: Sub-process /usr/bin/dpkg returned an error code (2)[/quote]

Comme le spécifie Zbf, une vérification de la présence/absence de ces derniers s’impose.

[mono][21:16:31]:~$ acp libopenvg1-mesa
libopenvg1-mesa:
Installé : (aucun)
Candidat : 8.0.5-4+deb7u2
Table de version :
10.1.0-4 0
97 ftp.fr.debian.org/debian/ testing/main i386 Packages
95 ftp.fr.debian.org/debian/ unstable/main i386 Packages
8.0.5-4+deb7u2 0
990 ftp.fr.debian.org/debian/ stable/main i386 Packages
990 security.debian.org/ stable/updates/main i386 Packages
7.10.3-4~bpo60+1 0
100 backports.debian.org/debian-backports/ squeeze-backports/main i386 Packages
[21:16:34]:~$

[21:16:57]:~$ acp libxvidcore4
libxvidcore4:
Installé : 3:1.3.2-dmo1
Candidat : 3:1.3.2-dmo1
Table de version :
*** 3:1.3.2-dmo1 0
990 www.deb-multimedia.org/ stable/main i386 Packages
98 deb-multimedia.org/ testing/main i386 Packages
100 /var/lib/dpkg/status
2:1.3.2-9 0
990 ftp.fr.debian.org/debian/ stable/main i386 Packages
97 ftp.fr.debian.org/debian/ testing/main i386 Packages
95 ftp.fr.debian.org/debian/ unstable/main i386 Packages
2:1.3.2-5~bpo60+1 0
100 backports.debian.org/debian-backports/ squeeze-backports/main i386 Packages
2:1.2.2-0.1 0
500 deb-multimedia.org/ oldstable/main i386 Packages
[21:17:02]:~$[/mono]

[quote]Du coup, j’ai passé un coup de fsck …
[/quote]

Je n’y vois aucun rapport !? :033

[mono][21:27:44]:~$ aptitude search ~c
c dkms - environnement de gestion dynamique des modules noyau
c libsdl-ttf2.0-0 - TrueType Font library for Simple DirectMedia Layer 1.2, libraries
c virtualbox-4.3 - Oracle VM VirtualBox
[21:28:11]:~$[/mono]

[mono][21:29:46]:~$ su -
Mot de passe :
[21:30:32] ~ #
[21:30:34] ~ # aptitude purge ~c
Les paquets suivants seront ENLEVÉS :
dkms{p} libsdl-ttf2.0-0{p} virtualbox-4.3{p}
0 paquets mis à jour, 0 nouvellement installés, 3 à enlever et 2 non mis à jour.
Il est nécessaire de télécharger 0 o d’archives. Après dépaquetage, 0 o seront utilisés.
Voulez-vous continuer ? [Y/n/?] y
(Lecture de la base de données… 177053 fichiers et répertoires déjà installés.)
Suppression de dkms …
Purge des fichiers de configuration de dkms …
dpkg : avertissement : lors de la suppression de dkms, le répertoire « /var/lib/dkms » n’était pas vide, donc il n’a pas été supprimé
Suppression de libsdl-ttf2.0-0:i386 …
Purge des fichiers de configuration de libsdl-ttf2.0-0:i386 …
Suppression de virtualbox-4.3 …
Purge des fichiers de configuration de virtualbox-4.3 …

[21:32:13] ~ #
[21:32:22] ~ #
[21:32:22] ~ # ll /var/lib/dkms
total 4,0K
drwxr-xr-x 3 root root 4,0K 2014-03-04 13:01 vboxhost
[21:32:25] ~ #[/mono]


[mono]$ uname -a && lsb_release -a[/mono] ?

[mono]$ acp libc6[/mono] ?

[mono]$ aptitude -s upgrade[/mono] ?

Ce n’est pas ce que Zbf spécifie ; lui suggère de réinstaller puis de purger ces paquets (qui sont bel et bien installés, cf mes messages précédents…)

Contexte, tout ça.

Je sais purger les paquets, mais c’est sans grand rapport avec mon soucis (comme d’ailleurs la demande d’infos sur /var/lib/dkms, qui n’est pas non plus installé chez moi). Au passage, pour indiquer des lignes de code, il y a une balise faite pour ça…

[quote=“BelZéButh”][mono]$ uname -a && lsb_release -a[/mono] ?

[mono]$ acp libc6[/mono] ?

[mono]$ aptitude -s upgrade[/mono] ?[/quote]
Quelle manière super polie et élégante de demander des compléments infos…

root@fadreils: ~$ uname -a Linux fadreils 3.13-1-amd64 #1 SMP Debian 3.13.6-1 (2014-03-19) x86_64 GNU/Linux
Les deux commandes suivantes ne sont manifestement pas installées chez moi.

Quant à aptitude, je lui préfère apt-get, personnellement (ce qui ne change rien en l’espèce, puisque le soucis est au niveau de dpkg). En tout cas, la liste des paquets à mettre à jour ne me semble d’aucun intérêt… mais si tu fais l’effort de faire une phrase pour préciser un peu quel intérêt ça peut avoir, je verrai ce que je peux faire.

Pour chaque paquet posant problème, je procéderais comme suit :
_téléchargement du paquet via [mono]apt-get download paquet[/mono] (si apt-get est dans les choux, il faudra le faire à la main depuis https://www.debian.org/distrib/packages)
_réinstallation via DPKG [mono]dpkg -i paquet.deb[/mono] (il faudra peut-être lancer des --force dans tous les sens)

Pas certain que ça débloque la situation, mais ça nous permettra de bien cibler qui d’APT ou DPKG est à la ramasse.

Sans surprise et comme le message d’erreur l’indiquait, c’est dpkg qui pose soucis.

Mais j’ai peut-être trouvé. Ce fameux « fichier contenant la liste des fichiers du paquet », c’est /var/lib/dpkg/[NOM_DU_PAQUET].list, et effectivement, pour les paquets bloquant, le fichier semblait endommagé (rien de lisible, alors que ceux des autres paquets étaient des listes de chemins en texte brut).

Du coup, j’ai tenté la solution de bourrin : virer les paquets problématique (virer un fichier, re-lancer dist-upgrade, vérifier quel est le paquet suivant qui pose problème, et recommencer… youpi. Ça devrait pouvoir s’automatiser, ceci dit, mais j’ai eu la flemme). Avec les fichiers manquants plutôt qu’endommagés, dpkg balance un warning, mais continue son boulot.

Donc la MàJ est en train de se faire, et je suppose qu’elle recréera toute seule les listes de fichiers correspondant en dépaquetant les bons paquets. Je vous tiens au courant…

Okay, résolu.

Si ce genre de soucis arrive à quelqu’un, il faut :
– Noter le nom des paquets qui bloquent dpkg
– Supprimer les fichiers /var/lib/dpkg/[NOM_DU_PAQUET].list correspondants
– Réinstaller ces paquets.

Lors de la réinstallation, dpkg, ne trouvant pas le fichier en question, écrasera tous les fichiers précédents, et recréera correctement la liste.
Attention, si ça arrive sur un paquet pour lequel une configuration spécifique a été enregistrée (un fichier de conf’ modifié dans /etc, par exemple), il est probable que dpkg n’y fasse plus attention et écrase l’ancienne conf’ sans demander (je n’ai pas eu le cas ici).