general.cherche-logiciel : glibc effacé par erreur: comment réparer ?
Posté par Cédric Hammer (page perso, ) le 19 septembre 2007
Hello tout le monde,
Par une commande malencontreuse (rpm -e --nodeps glibc), l'un de mes collègues a effacé cette librairie sur un de nos serveurs (RHEL 3), librairie qui est utile pour de nombreux autres programmes ...
J'ai tenté de la réinstaller, mais rien n'y fait, on dirait que tout en dépend !! :
Quelqu'un a une idée de comment faire pour me sortir de ce pétrin ?
Merci d'avance ...
Par une commande malencontreuse (rpm -e --nodeps glibc), l'un de mes collègues a effacé cette librairie sur un de nos serveurs (RHEL 3), librairie qui est utile pour de nombreux autres programmes ...
J'ai tenté de la réinstaller, mais rien n'y fait, on dirait que tout en dépend !! :
# ls
-bash: /bin/ls: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory# rpm -ivh glibc-2.3.4
-bash: /bin/rpm: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory# tar xvzf glibc-2.3.4.tar.gz
-bash: /bin/tar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directoryQuelqu'un a une idée de comment faire pour me sortir de ce pétrin ?
Merci d'avance ...
> Lire le message (21 commentaires, moyenne: 1,7).
Vous avez demandé le commentaire #868365.



ça se complique ...
Merci de votre aide, voici quelques réponses :
- concernant un liveCD, ça va être dur ... ici c'est super segmenté au niveau des exploitants, et les gens qui installent les serveurs ne sont pas les même que ceux qui les exploitent ! D'ailleurs, je n'ai pas accès au serveur de façon physique, vu qu'il est à environ 800km de moi :) (comprenez par là que je n'y accède que par ssh ...)
- pour mon collègue, l'expliquation est qu'il voulait faire un rpm -f ... :/
- pour les backups des serveurs, je vais voir, mais vu que ce sont des serveurs de dev, j'en doute ... (bon le fait que ce soit des serveurs de dev m'arrange aussi quelque part, vu que la conséquence du problème est moins grave)
- pour ce qui est de la busybox, je ne connais pas, vous pourriez m'en dire un peu plus ?
[^]Re: ça se complique ...
Je pense à autre chose (peut-être très bête ...) : y'aurait pas moyen d'installer glibc à la main ?
Si je "détar" sur mon pc (ou "dé-rpmise"), je devrais retrouver les bibliothèques non ? Donc si je les copie au bon endroit ça ne suffira pas ?
[^]Re: ça se complique ...
J'ai eu ce genre de problème également (un remplacement de la lib sans supression).
Si tu peux copier le fichier ld-linux.so.2 sur le serveur, il y a de chance de réussite.
1- copier ld-linux.so.2 dans /tmp
2- ensuite
Si ca marche, une grosse épine du pied est retirée et avec un peu de chance
[^]Re: ça se complique ...
Merci de l'aide, j'ai tenté, et voilà où j'en suis:
-- Copie de ld-linux.so.2 dans /tmp
-- je tente en copiant dans /lib/
-- je passe le fichier en 755 grâce à WinSCP encore connecté
ça fait pareil avec rpm -iVH etc. ; du coup je sèche ... autre chose _seb_ ?
[^]Re: ça se complique ...
Si tu te déconnectes, je pourrais plus rien pour toi.
Ca devient compliqué.
Une de possibilité (un peu babarre tout de même):
Reprendre le package rpm glibc-2.3.4 et l'extraire (sur une autre machine) comme suit:
On a alors le contenu du fichier rpm et l'on peut installer à la mano les libs (à commencer par ld-linux.so.2, puis libc, libpthread, etc dans le répertoire /tmp). A chaque copie de fichier (en 777), on essaye la commande ls avec .
Si ça marche, on réinstalle la glibc via rpm.
Et si ça a vraiment marché, on clique sur le lien suivant: http://linuxfr.org/dons/
Et on dit au collègue de signer le chèque.
[^]Re: ça se complique ...
d'ou l'interet d'avoir busybox. C'est un binaire qui propose tous les binaire unix en petit taille. en gros on fait "busybox ls" ou "busybox cat ...".
http://www.busybox.net/about.html
Cela permet d'éviter de se mordre la queue en voulant utiliser cp qui a besoin lui même de la libc.
[^]Re: ça se complique ...
Hello,
Après avoir vainement testé les solutions de copie des librairies à la main, je me suis mis en quête de la solution busybox ; j'ai donc installé ça sur un serveur équivalent, récupéré le binaire, et l'ai copié sur le serveur défaillant.
Ca fonctionne donc pour pas mal de choses (je peux maintenant faire un ls, etc.).
Ceci dit, je n'arrive pas à résoudre mon problème encore :
- l'applet rpm n'existe pas (par défaut en tout cas) ; j'ai cherché un applet à part, mais rien de fructueux de ce côté là sur notre ami google ...
- je ne sais pas comment compiler avec busybox:
Donc still need help please ! Les pros de busybox sont toujours là ?
[^]Re: ça se complique ...
mea culpa, la version installée par défaut sur l'autre serveur était la 0.60 ... et on en est à la 1.7.1, sur laquelle rpm est implémentée, je vais donc mettre celle là, et réessayer ; je vous tiens au courant :)
[^]Re: ça se complique ...
A y'est ! Après moults essais, j'ai enfin réussi ! Pour info, busybox est la bonne méthode ...
J'ai donc utilisé un deuxième serveur (identique) pour compiler la dernière version de busybox (1.7.1).
J'ai eu quelques erreurs du à ma version de glibc, mais j'ai corrigé ça, lancé la création d'un build static malgré le warning (a priori, les buils static fait avec glibc sont "buggy" ; chez moi ça marche très bien avec ce qu'en fait en tout cas !), que j'ai donc viré.
J'ai ensuite copié le binaire sur l'autre serveur, et relancé un busybox rpm -i glib-2.3.4-2.rpm et là miracle, tout remarche !
Alléluia ! :D
Merci à tous pour votre aide !!
[^]Re: ça se complique ...
ouha, j'aurais pas cru que l'on puisse se sortir dans un truc pareil...