Réparer apt-get
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é !