Retourner aux forums || Retourner au forum general.cherche-logiciel
general.cherche-logiciel : glibc effacé par erreur: comment réparer ?
Posté par Cédric Hammer (page perso, ) le 19 septembre 2007Par 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).
Oups, mauvais forum ...
Hmmpf !
J'ai oublié de changer le forum ... comment je fais pour le mettre dans Linux.general ??
Dsl messieurs les modérateurs, c'est une erreur ... (encore :) )
le plus simplement du monde...
libc etant VITALE
si elle est absente plus grand chose ne fonctionne, tu l'auras constaté.
une seule solution (ou peut-etre 2)
1°) booter sur un livecd
2°) monter la partition devant contenir les fichiers le la glibc
3°) decompresser les fichiers qui vont bien aux endroits qui vont bien.
une autre solution :
1°) demonter le disque dur
2°) le monter sur une machine qui fonctione
3°) monter la partition du disque qui doit contenir la glibc
4°) decompresser les fichiers qui vont bien aux bons endroits.
enfin,
virer l'admin qui a fait le
rpm -e --nodeps glibc
car il ne merite pas sa place
;-)
Apprendre par les autres, c'est bien.
Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux
-
[^]Re: le plus simplement du monde...
Posté par jimee (page perso, ) le 19/09/2007 à 14:29. (lien). Évalué à 2.Si tu as le rpm, tu dois aussi pouvoir l'installer (toujours depuis le live cd, ou un autre système) avec l'option --root :
Si tu as monté ton disque dans /target
rpm --root /target -ivh /target/root/glibc-2.3.4.rpm-
[^]Re: le plus simplement du monde...
Posté par jc (Jabber id, ) le 19/09/2007 à 15:01. (lien). Évalué à 1.Normalement les serveurs sont backupés. Tu peux également remonter une sauvegarde.
-
[^]Re: le plus simplement du monde...
Posté par gnumdk (page perso, ) le 19/09/2007 à 23:27. (lien). Évalué à 1.Mwai, souvent, les données (utilisateurs, ldap, conf, ...) sont sauvegardées, pas le reste...
-
[^]Re: le plus simplement du monde...
-
-
-
statique ? busybox ?
Il faut trouver les quelques binaires statique que tu peux avoir.
Le mieux serait d'avoir busybox quelques part. Peut-être que tu peux le mettre sur un disque visible depuis ce serveur ?
-
[^]Re: statique ? busybox ?
Posté par Tonton Benoit (Jabber id, ) le 19/09/2007 à 18:34. (lien). Évalué à 2.Sous Gentoo Busybox est installé par défaut, je trouve que ça devrait être le cas sur toutes les distribs !
Surtout que busybox fournis une version de rpm je crois, pratique pour une RHEL !-
[^]Re: statique ? busybox ?
Posté par GeneralZod () le 20/09/2007 à 07:45. (lien). Évalué à 2.Busybox est *déjà* empaqueté dans RHEL/CentOS ...
-
ç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 ...
Posté par Cédric Hammer (page perso, ) le 20/09/2007 à 09:05. (lien). Évalué à 1.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 ...
Posté par _seb_ () le 20/09/2007 à 13:12. (lien). Évalué à 1.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
LD_PRELOAD=/tmp/ld-linux.so.2:$LD_PRELOAD ls
Si ca marche, une grosse épine du pied est retirée et avec un peu de chance
LD_PRELOAD=/tmp/ld-linux.so.2:$LD_PRELOAD rpm -ivh glibcXXX.rpm
-
[^]Re: ça se complique ...
Posté par Cédric Hammer (page perso, ) le 20/09/2007 à 14:07. (lien). Évalué à 1.Merci de l'aide, j'ai tenté, et voilà où j'en suis:
-- Copie de ld-linux.so.2 dans /tmp
# LD_PRELOAD=/tmp/ld-linux.so.2:$LD_PRELOAD ls
-bash: /bin/ls: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
-- je tente en copiant dans /lib/
]# LD_PRELOAD=/tmp/ld-linux.so.2:$LD_PRELOAD ls
-bash: /bin/ls: Permission denied
-- je passe le fichier en 755 grâce à WinSCP encore connecté
# LD_PRELOAD=/tmp/ld-linux.so.2:$LD_PRELOAD ls
-bash: /bin/ls: Input/output error
ça fait pareil avec rpm -iVH etc. ; du coup je sèche ... autre chose _seb_ ?-
[^]Re: ça se complique ...
Posté par _seb_ () le 20/09/2007 à 15:04. (lien). Évalué à 1.
-- je passe le fichier en 755 grâce à WinSCP encore connecté
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:
mkdir rep_travail
cd rep_travail
rpm2cpio glibc-XXXX.rpm | cpio --extract --make-directories
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 .
LD_PRELOAD=/tmp/ld-linux.so.2:/tmp/libc-2.3.4.so ls
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 ...
Posté par Nicolas Boulay () le 20/09/2007 à 15:06. (lien). Évalué à 2.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 ...
Posté par Cédric Hammer (page perso, ) le 21/09/2007 à 09:45. (lien). Évalué à 1.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:
# busybox tar xvzf glibc-2.3.4.tar.gz
# cd glibc-2.3.4
# ./configure
-bash: ./configure: /bin/sh: bad interpreter: Input/output error
# busybox sh ./configure
Segmentation fault
# busybox ./configure
configure: applet not found
Donc still need help please ! Les pros de busybox sont toujours là ?-
[^]Re: ça se complique ...
Posté par Cédric Hammer (page perso, ) le 21/09/2007 à 09:55. (lien). Évalué à 1.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 ...
Posté par Cédric Hammer (page perso, ) le 21/09/2007 à 15:01. (lien). Évalué à 2.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 ...
Posté par Nicolas Boulay () le 23/09/2007 à 14:33. (lien). Évalué à 2.ouha, j'aurais pas cru que l'on puisse se sortir dans un truc pareil...
-
-
-
-
-
-
-
Oh oh oh :)
Ton copain a lu le GLibC uninstall Howto :)
http://www.pafoo.net/uninstallglibc/uninstglibc.html
-
[^]Re: Oh oh oh :)
Posté par Cédric Hammer (page perso, ) le 21/09/2007 à 07:45. (lien). Évalué à 1.huhu ! j'aime bien, je vais lui faire passer :)
Revenir en haut de page || Retourner aux forums || Retourner au forum general.cherche-logiciel



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.