cClaude.rocks ☕ Le blog

[Nouvelles technologies, sciences et coups de gueule…]

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 - 2021 | 🏠 Retour Ă  l'accueil du domaine | 🏡 Retour Ă  l'accueil du blog