Quand « apt-get » réclame une ligne en fin de fichier …

17 septembre 2016

Aujourd’hui j’ai eu un comportement assez étrange sur l’un de mes serveurs de fichiers. Lors d’une simple mise à jour, « apt-get » m’indique qu’un fichier du paquet « netatalk » n’a pas de retour à la ligne en fin de fichier et se termine sur une erreur de dpkg.

# root at files in /home/maiko [14:37:17]
→ apt-get upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
Les paquets suivants seront mis à jour :
--------
xx mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 0 o/26,7 Mo dans les archives.
Après cette opération, 357 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] O
Lecture des fichiers de modifications (« changelog »)... Terminé
Extraction des modèles depuis les paquets : 100%
Préconfiguration des paquets...
dpkg : erreur fatale irréversible, abandon :
la liste des fichiers pour le paquet « netatalk » n'a pas de retour à la ligne en fin de fichier
E: Sub-process /usr/bin/dpkg returned an error code (2)

Je n’avais encore jamais rencontrés cette erreur jusqu’ici et elle est assez embêtante puisque celle-ci bloque totalement apt et qu’il n’est plus possible de mettre à jour le système ou bien d’installer un logiciel.

Après avoir chercher quelques temps, je suis tombé sur une solution toute simple : apt réclame un retour à ligne dans un fichier ? Ok. Donnons lui ce qu’il souhaite.

# root at files in /home/maiko [14:37:29]
→ echo '\r' >> /var/lib/dpkg/info/netatalk.list

Et au final, ça fonctionne à nouveau, plus d’erreur.

Bon, j’ai encore un peu de mal à trouver pourquoi ce retour à ligne a disparu (apt fonctionnait parfaitement bien il y a quelques jours, sans actions de ma part entre temps) ni pourquoi 3 paquets sans rapport les uns avec les autres présentes le même soucis…

Une idée ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

*