Sur un PC fonctionnant sous Ubuntu 8.04 (Hardy Heron), depuis quelque temps, il était impossible de faire la moindre mise à jour. Il y avait un message :

    L'exécution a été arrêtée car il y avait trop d'erreurs. 

Après plusieurs recherche sur le système, je me suis rendu compte que le paquet msttcorefonts était cassé et générait les erreurs. Lors des essais de réparation avec la commande 

    apt-get install --reinstall msttcorefonts

il y avait un message du type

    ifupdown missing final newline

J’ai trouvé la solution sur cette page. Cette erreur semble provenir d’un mauvais arrêt de la machine.

Pour résoudre le problème,il faut réinstaller le paquet en défaut et forcer la création d’une description de ce paquet dans le dossier /var/lib/dpkg/info. Pour cela, il faut supprimer les descriptions, créer la description du paquet en erreur et restaurer l’ensemble des descriptions.

Dans mon cas, c’est la paquet ifupdown qui doit être réinstallé car il bloque msttcorefonts.

Il faut donc :

  • supprimer les descriptions des paquets en renommant le répertoire /var/lib/dpkg/info en /var/lib/dpkg/info.ori avec les commandes :
   cd /var/lib/dpkg
   sudo mv info info.ori
  • créer un nouveau dossier info vide
    sudo mkdir info
  • réinstaller le paquet en défaut ce qui va recréer une description associée
    sudo apt-get install --reinstall ifupdown

Lors de l’installation, il y a de nombreux messages de Warning. Il ne faut pas en tenir compte, ils proviennent de l’absence des descriptions des paquets (contenu du dossier info).

  • copier les fichiers de description du paquet dans le dossier de description d’origine, nous obtenons ainsi un ensemble cohérent de description
    sudo mv info/* info.ori/.
  • restaurer le dossier info
    sudo mv info.ori info 

Ensuite, il faut faire les mises à jour par les commandes classiques :

    sudo apt-get update
    sudo apt-get upgrade

Lors de la mise à jour qui a suivie, il y a eu des erreurs et en particulier les paquets samba-common et smbclient qui étaient cassés. La réinstallation de ces paquets n’a pas résolut le problème, de même que d’installer samba

En cherchant sur le Forum d’ubuntu-Fr, j’ai trouvé cette solution qui a marché :

Dans le dossier /var/lib/dpkg, il faut :

  • renommer le fichier status
    sudo mv status status.pb
  • créer un nouveau fichier vide
    sudo touch status
  • reconfigurer les mises à jour
    sudo dpkg --configure -a
  • lancer la mise à jour
    sudo apt-get update
    sudo apt-get upgrade

Après cette opération, il n’y a plus de paquets cassé !