/usr/share/perl/5.20/warnings/register.pm corrompu

Suite du sujet Plus de serveur X suite à e2fsck:

Bonjour, suite à un problème (surement un arret brutal de ma machine), l’installation de perl n’est plus fonctionnelle, et un fichier est corrompu (cf. sujet lié).

Le fichier en question est : /usr/share/perl/5.20/warnings/register.pm

Je recherche donc quelqu’un pour me transmettre une version saine de ce fichier. Voici mon architecture :

apt-cache policy perl
perl:
Installé : 5.20.2-3+deb8u4
Candidat : 5.20.2-3+deb8u4
Table de version :
*** 5.20.2-3+deb8u4 0
990 http://security.debian.org/ jessie/updates/main amd64 Packages
990 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
100 /var/lib/dpkg/status

Je vous remercie par avance !

Edit : une partie de mon message ne s’était pas publié… c’est corrigé !

Suite du sujet Plus de serveur X suite à e2fsck:

Pourquoi ne télécharges-tu pas ce paquet toi-même pour le réinstaller ou en extraire le fichier corrompu ?

Bonjour trich, peut-être pas la peine, j’ai vu une autre méthode de réparation adapté au cas de perl :slight_smile:

Il y a une méthode intéressante de réparation avec dpkg :
http://www.debianhelp.co.uk/debianproblem.htm

Je traduis et j’adapte l’extrait important :

Réparation en utilisant dpkg

récupération ad hoc d’un dselect écrasé (APT) sur un système vraiment cassé en utilisant simplement dpkg sans APT:

# cd /var/cache/apt/archives
# dpkg -i perl*
# dpkg -i apt*
# dpkg -i paquet-cassé*

jusqu’à ce qu’il n’y ait plus de paquet cassé.

Tu pourrais déjà simuler ces actions avant de les effectuer réellement par mesure de prudence. Soit :
# cd /var/cache/apt/archives
# dpkg --simulate -i perl*

# dpkg --simulate -i apt*

Je viens de le faire, l’installation du .deb par dpkg -i s’est faite sans encombre.

Je peux désormais installer debsums (avec apt-get, ce qui n’était pas possible avant.) Il y a donc un peu de mieux. (cf. sujet lié, qui est à la base de mon problème…)

Néanmoins, le fichier corrompu /usr/share/perl/5.20/warnings/register.pm est toujours corrompu : j’obtiens toujours le même message d’erreur lorsque je souhaite lancer debsums :

Unrecognized character \x1F; marked by <-- HERE after <-- HERE near column 1 at /usr/share/perl/5.20/warnings/register.pm line 1.
Compilation failed in require at /usr/share/perl/5.20/File/Find.pm line 5.
BEGIN failed–compilation aborted at /usr/share/perl/5.20/File/Find.pm line 5.
Compilation failed in require at /usr/bin/debsums line 10.
BEGIN failed–compilation aborted at /usr/bin/debsums line 10.

Si je tente de reconfigurer perl, une fois celui-ci réinstallé, j’obtiens les mêmes messages d’erreur :

$ sudo dpkg-reconfigure perl
Unrecognized character \x1F; marked by <-- HERE after <-- HERE near column 1 at /usr/share/perl/5.20/warnings/register.pm line 1.
Compilation failed in require at /usr/share/perl/5.20/vars.pm line 7.
BEGIN failed–compilation aborted at /usr/share/perl/5.20/vars.pm line 7.
Compilation failed in require at /usr/share/perl/5.20/base.pm line 4.
BEGIN failed–compilation aborted at /usr/share/perl/5.20/base.pm line 4.
Compilation failed in require at /usr/share/perl5/Debconf/Log.pm line 7.
BEGIN failed–compilation aborted at /usr/share/perl5/Debconf/Log.pm line 7.
Compilation failed in require at /usr/share/perl5/Debconf/Db.pm line 7.
BEGIN failed–compilation aborted at /usr/share/perl5/Debconf/Db.pm line 7.
Compilation failed in require at /usr/sbin/dpkg-reconfigure line 11.
BEGIN failed–compilation aborted at /usr/sbin/dpkg-reconfigure line 11.

Je ne trouve pas ce fichier dans le paquet perl ni aucun autre paquet.
Ce que je trouve de plus plus proche dans Jessie est un fichier /usr/share/perl/5.20.2/warnings/register.pm qui fait partie du paquet perl-base et non perl.

Sur ma machine, j’ai les deux fichiers : celui que tu mentionnes, et celui que je mentionne…

Je reprends la même manip avec perl-base qu’avec perl ? (ie installation avec dpkg)

Je dirais oui.

Je soupçonne que /usr/share/perl/5.20 est un lien symbolique qui pointe vers /usr/share/perl/5.20.2.

Pour vérifier :
ls -l /usr/share/perl/5.20

C’est effectivement le cas :

lrwxrwxrwx 1 root root 6 mai 3 2015 /usr/share/perl/5.20 -> 5.20.2

Une fois perl-base réinstallé, quelle commande dois-je exécuter pour tout remettre en ordre ?

  • dpkg-reconfigure perl-base ?
  • apt-get update puis apt-get upgrade ?
  • autre chose ?

Je fais les 3 à chaque fois, dans le doute…

Voila qui a fait, je n’ai plus l’erreur perl lorsque j’essaie de lancer debsums, qui tourne à merveille désormais !

Merci beaucoup pour ton aide PascalHambourg !