En essayant de résoudre un problème avec Python, j'ai accidentellement effacé mon binaire libz.so.1
en faisant un lien symbolique dessus. Maintenant, un tas de choses, y compris apt-get
ne fonctionnera pas. Les dégâts sont limités à juste libz.so.1 (qui indiquait libz.so.1.2.8
), donc je devrais pouvoir le réparer en recherchant simplement le fichier binaire x86_64 et en le replaçant à la place, mais tout ce que je peux trouver est la source et ce que je peux ne le faites pas compiler. Je suis sur Xenial. Où puis-je trouver un binaire compilé?
La bonne façon de résoudre ce problème consiste à télécharger manuellement le paquet nécessaire, puis à l'installer ou à l'extraire sur le système. Bien sûr, vous pouvez effectuer de telles actions à partir de LiveCD/LiveUSB.
Comment résoudre de tels problèmes:
Entrez le nom de fichier manquant dans Recherchez le contenu des packages (dans notre cas, libz.so.1.2.8
) en spécifiant la cible Distribution ( xenial
dans notre cas) et CPU Architecture (AMD64
):
Cliquez sur Rechercher , il affichera la page des résultats :
Cliquez ensuite sur le lien zlib1g
Dans la section Download , cliquez sur AMD64
:
Sur la page ouverte, sélectionnez le miroir le plus proche (copier le lien ou télécharger le fichier deb par navigateur)
wget http://mirrors.kernel.org/ubuntu/pool/main/z/zlib/zlib1g_1.2.8.dfsg-2ubuntu4_AMD64.deb
Essayez d'installer le paquet téléchargé sur le système:
Sudo dpkg -i zlib1g_1.2.8.dfsg-2ubuntu4_AMD64.deb
Si cela ne fonctionne pas - extrayez-le directement dans le système de fichiers:
Sudo dpkg -x zlib1g_1.2.8.dfsg-2ubuntu4_AMD64.deb /
Et bien sûr, réinstallez-le avec APT:
Sudo apt-get install --reinstall zlib1g
Une extension de instructions de N0rbert , si vous effectuez cette opération dans une session en direct, , assurez-vous d'extraire le paquet à la racine de votre installation cassée d'Ubuntu , par opposition à la racine de la session en direct elle-même (qui ne résoudra rien et disparaîtra au redémarrage).
À partir du POV de la session en direct, votre installation endommagée sera montée à quelque chose comme /media/ubuntu/ae7r0-9s90s-ejf8d-d9d9f
(pas la valeur réelle, mais un long hachage semblable à celui-ci). Vous devrez peut-être y accéder dans l'explorateur de fichiers pour que le dossier apparaisse.
Ainsi, lors de la session en direct, vous extrayez à l'aide d'une commande telle que:
Sudo dpkg -x zlib1g_1.2.8.dfsg-2ubuntu4_AMD64.deb /media/ubuntu/ae7r0-9s90s-ejf8d-d9d9f/
Une fois que le libz.so.1
manquant est restauré dans /media/ubuntu/ae7r0-9s90s-ejf8d-d9d9f/lib/x86_64-linux-gnu/
, vous devriez pouvoir redémarrer, exécuter Sudo apt-get install --reinstall zlib1g
dans tty1 et redémarrer à nouveau sur un système en fonctionnement.