cClaude.rocks ☕ Le blog

L'informatique et les nouvelles technologies

Menu

Un problème un paquet qui ne veut plus s’installer et qui ne fonctionne plus ? Ici, je prends l’exemple de python car c’est un sujet récurrent pour moi, mais en réalité c’est procédure fonctionne dans d’autre cas de figure.

Typiquement vous avez essayé des trucs du genre sudo apt-get autoremove, sudo apt-get install --fix-broken, dans le cas de python sudo apt install --reinstall hplip hplip-data sans succès, vous trouverez alors de procédures qui peuvent-être catastrophique surtout sur une machine qui à un environnement graphique :

# Déconseillé sur une machine avec un environnement graphique
sudo apt-get purge python* && sudo apt-get autoclean && sudo apt-get install python*

Pourquoi cette dernière ligne, que j’ai trouvé sur plusieurs sites, est une solution extrêmement dangereuse sur une machine avec un environnement graphique ? Python est souvent une dépendance avec la couche graphique, et donc la désinstallation de python risque de produire la désinstallation de toute la couche graphique, je vous souhaite bon courage pour remonter cela. Sur un serveur sans interface graphique (le terme informatique utilisé pour décrire cela est « headless ») cela peut être une bonne solution, tout dépend de ce qui est installé.

Je vous propose donc une procédure qui est beaucoup moins risqué et qui est un peu moins en mode bricolage.

Identifier le paquet en cause

Commencer par lancer la commande : (cela va échouer)

sudo apt-get upgrade

En regardant attentivement les traces, il est possible d’identifier le paquet en cause. Dans mon cas, il n’était plus possible d’installer ou de mettre à jour python3:amd64.

La procédure

L’objectif est de contourner l’installation du paquet qui ne se met pas à jour. On va s’assurer que l’ensemble des autres paquets sont correctement installés.

Puis par passes successives on va faire fonctionner progressivement le reste de la mise Ă  jour, et on finira par mettre Ă  jour le paquet en cause.

Dans mon exemple, le nom du paquet en cause est python3:amd64 (vous aurez à adapter ce nom en fonction de votre problème)

Exécutez la mise à niveau (qui échouera):

sudo apt-get upgrade

Ensuite, nous allons installer les fichiers que nous pouvons à partir du cache (cela réussira pour certains, mais échouera pour d’autres) :

sudo dpkg -i /var/cache/apt/archives/*.deb

Puis on va d’installer le paquet qui nous ennuis (ne pas purger !). Cela entraînera la rupture de nombreuses dépendances, ne vous inquiétez pas, nous les corrigerons par la suite.

sudo dpkg -r --force-depends python3:amd64

Il faut ensuite reconfigurer les paquets du système (cela réussira dans la plupart des cas):

sudo dpkg --configure -a

On a progressé, et on va relancer l’installation des paquets à partir du cache (cela réussira pour certains, mais échouera pour d’autres):

sudo dpkg -i /var/cache/apt/archives/*.deb

Maintenant, exécutez une autre mise à jour du système qui téléchargera les packages nécessaires (mais échouera lors de l’installation) :

sudo apt-get upgrade

Si vous êtes chanceux, cela pourrait commencer à fonctionner à partir d’ici, mais sinon, une autre série d’installations à partir du cache le permettra.

Réinstallez à partir du cache (réussira !)

sudo dpkg -i /var/cache/apt/archives/*.deb

Enfin, vous pouvez maintenant vérifier que les autres installations ou mises à niveau réussiront.

Références

ᦿ


ℹ 2006 - 2020 | 🕸 Retour à l'accueil du domaine | 🏡 Retour à l'accueil du blog