Problèmes avec l'éditeur de lien et ld.so.conf [Fedora 4] - Installation - Linux et OS Alternatifs
Marsh Posté le 21-09-2005 à 09:40:39
Essaie en rajoutant dans ta variable LD_LIBRARY le chemin où tu peux trouver tes librairies, un truc du genre export LD_LIBRARY=$LD_LIBRARYton/path
Sinon, updatedb te mets à jour la liste de fichiers pour quand tu fais une recherche via locate T'es pas obligé de relancer cette commande à chaque fois que tu changes tes librairies
Marsh Posté le 21-09-2005 à 09:47:39
merci pour cette proposition. Je viens d'essayer après avoir fait :
# echo $LD_LIBRARY |
étonnament cette commande ne me retourne rien, c'est normal ?
# export LD_LIBRARY=$LD_LIBRARY:/usr/lib/gcc-lib/i386-redhat-linux/4.0.0 |
Marsh Posté le 21-09-2005 à 09:58:31
malheureusement ça n'a pas l'air de marcher non plus :
[user]# export LD_LIBRARY=/usr/lib/gcc-lib/i386-redhat-linux/4.0.0/ |
Marsh Posté le 21-09-2005 à 10:12:14
oui :
# more /etc/ld.so.conf |
je ne vois pas ce qui bloque...
Marsh Posté le 21-09-2005 à 10:21:00
Hum, je sais pas alors, je passe
Ceci dit, tu peux virer le paquet rpm que t'avais installé, à mon avis, il fait plus conflits qu'autre chose là (c'est pas une histoire de version de gcc qui déconne).
Et dernier truc, si tu fais un lien de /lib/libgcc_s.so.1 vers /lib/libgcc.so ? (et ldconfig, toussa )
Marsh Posté le 21-09-2005 à 10:49:13
Y'a aussi un autre truc bizarre :
[root]# rpm -e libgcc-3.2.2-5.i386.rpm |
root ne semble pas voir les packages libgcc (et donc je ne peux pas le supprimer). Je l'avais pourtant installé en tant que root en faisant rpm -i --force...
[root]# rm -f libgcc_s-so.1 |
Qu'est-ce qui se passe ?
Marsh Posté le 21-09-2005 à 11:54:28
Et si tu fais un rpm -e libgcc-3.2.2-5, mais en root ? (ou via sudo)
Les fichiers qui gènent ldconfig, ils ont quoi ? (taille = 0, lien vers rien, autre ?)
Marsh Posté le 21-09-2005 à 13:54:36
Il doit y avoir un bug dans mon install du package gcc 3.2.2-5 :
# rpm -e libgcc-3.2.2-5 |
Et à priori les fichiers qui embêtent ldconfig sont bien vides :
[root]# cd /lib |
Y'a-t'il un moyen de corriger cela ?
Marsh Posté le 22-09-2005 à 08:42:51
On m'a dit sur un autre forum que j'avais fait des bêtises en supprimant libgcc-3.2.2-5, et que ma base de RPM était à présent moitié en vrac... Auriez-vous une solution pour corriger ce problème ?
Marsh Posté le 22-09-2005 à 15:02:00
au moins pour la base des RPM censée être en vrac ??
Marsh Posté le 22-09-2005 à 15:04:36
Hum, si c'est toi qui a installé un nouvelle version version de libgcc, c'est pas vraiment une betise de l'avoir supprimée.
Essaie peut-être de reinstaller ton ancienne version de libgcc (celle que tu avais au début).
Marsh Posté le 22-09-2005 à 15:15:18
Voilà ce qu'on m'a dit :
Citation : Voici la liste de tes horreurs : |
Par contre, il ne m'a pas aidé pour sortir de ce mauvais pas... La version que j'avais au début était libgcc 4, tu penses donc qu'il faut que la réinstalle avec un ptit rpm -i --force ..libgcc..4.rpm ?
Marsh Posté le 22-09-2005 à 15:20:53
Oui, ça doit être un truc du genre. Tu dois pouvoir trouver le fichier sur ton cd, ou sur dans la base des paquets Fedora (chuis pas un connaisseur de Fedora )
Sinon, il a pas complètement tord. Après, je sais pas exactementles conséquences qu'à la modification de libgcc sur le système. Je sais pas si c'est aussi grave qu'il le dit.
Regarde également si tu n'a pas des options ou des outils rpm permettant de voir si ta base est en bon état, si il manque pas des paquets, etc. Hésites pas à réinstaller avec les paquets d'origines si il faut.
Marsh Posté le 22-09-2005 à 16:04:52
Bon à priori j'ai réussi à récupérer le problème : j'ai recopié le /lib/libgcc_s-4.0.0-20050520.so.1 (que j'avais corrompu) à partir d'un autre poste sous Fedora, puis j'ai modifié le lien symbolique libgcc_s.so.1 en le faisant pointer vers /lib/libgcc_s-4.0.0-20050520.so.1.
La commande rpm fonctionne à nouveau, et n'affiche plus ce message :
rpm: /lib/libgcc_s.so.1: version `GCC_3.3.1' not found (required by /usr/lib/librpmio-4.4.so) |
Je me retrouve donc à peu près avec ce que j'avais auparavant... et j'en reviens au souci que ld ne trouve toujours pas libgcc... Si quelqu'un a d'autres solutions... En tout cas, merci multani pour tes conseils, tu es l'un des rares à m'avoir aidé...
Marsh Posté le 22-09-2005 à 16:17:55
Si c'est pas indiscret, c'est quoi que tu essaies de compiler et qui a besoin de libgcc ?
Marsh Posté le 22-09-2005 à 16:29:55
c'est un module qui fait partie d'un gros programme de simulation... qui fonctionnait parfaitement sous RedHat 9... Ptetre en installant les RPM de type devel, cela corrigerait le problème ?
Marsh Posté le 23-09-2005 à 08:55:54
pour installer les paquets devel, si je fais un ptit
yum install devel* |
ça marchera ou non ?
Marsh Posté le 21-09-2005 à 09:07:27
Bonjour,
Je souhaiterais compiler sous Fedora 4 (2.6.11-1.1369_FC4smp) un logiciel que j'utilisais jusqu'à présent sous RedHat 9.
Seulement, il me cause quelques problèmes avec ld ; lors du make, j'obtiens :
/usr/bin/ld: ne peut trouver -lgcc
Or, la librairie libgcc 4.0.0 est bien installée sur mon ordi :
# locate libgcc
/lib/libgcc_s-4.0.0-20050520.so.1
/lib/libgcc_s.so.1
/usr/lib/gcc/i386-redhat-linux/4.0.0/libgcc.a
/usr/lib/gcc/i386-redhat-linux/4.0.0/adalib/libgccprefix.a
/usr/lib/gcc/i386-redhat-linux/4.0.0/libgcc_eh.a
/usr/lib/gcc/i386-redhat-linux/4.0.0/libgcc_s.so
Sachant que la compilation de ce programme fonctionnait bien sous RedHat 9, avec la librairie libgcc 3.2.2-5, j'ai décidé de l'installer à partir du RPM qu'on peut trouver sur le web (en tant que root) :
# rpm -i --force libgcc-3.2.2-5.i386.rpm
Ne sachant pas exactement comment installer une librairie, j'ai cherché des précisions sur le web et j'ai exécuté les commandes suivantes (sans trop savoir ce qu'il en retournait, je l'avoue) (en tant que root) :
ldconfig
updatedb
Au final, voici ce que j'ai obtenu :
# locate libgcc
/lib/libgcc_s-4.0.0-20050520.so.1
/lib/libgcc_s-3.2.2-20030225.so.1
/lib/libgcc_s.so.1
/lib/libgcc_s-so.1
/usr/lib/openoffice.org1.9.104/program/libgcc3_uno.so
/usr/lib/gcc/i386-redhat-linux/4.0.0/libgcc.a
/usr/lib/gcc/i386-redhat-linux/4.0.0/adalib/libgccprefix.a
/usr/lib/gcc/i386-redhat-linux/4.0.0/libgcc_eh.a
/usr/lib/gcc/i386-redhat-linux/4.0.0/libgcc_s.so
/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/libgcc.a
/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/libgcc_eh.a
/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/libgcc_s.so
Vous remarquerez déjà la bizzarerie des 2 liens symboliques /lib/libgcc_s.so.1 :
lrwxrwxrwx 1 root root 28 sep 20 17:54 libgcc_s-so.1 -> libgcc_s-4.0.0-20050520.so.1
lrwxrwxrwx 1 root root 28 sep 20 17:55 libgcc_s.so.1 -> libgcc_s-4.0.0-20050520.so.1
Comme ma compilation retournait toujours :
/usr/bin/ld: ne peut trouver -lgcc
J'ai décidé de modifier le fichier /etc/ld.so.conf (en tant que root) :
include ld.so.conf.d/*.conf
/usr/lib/gcc-lib/i386-redhat-linux/4.0.0
Après avoir relancé un ptit coup de ldconfig et updatedb, je suis parvenu à compiler un peu + loin le programme (en tant que root). Le problème, c'est que je dois compiler le programme en tant qu'utilisateur. Or, lorsque je suis revenu en tant qu'utilisateur, ld ne trouvait toujours pas la librairie gcc !! J'ai essayé de redémarrer le PC... En vain, puisque ni en tant qu'utilisateur, ni en tant que root, ld ne retrouve libgcc...
J'ai dû oublier quelque chose (sûrement une des bases) mais quoi ??? Je suis un peu newbie donc.... Si un sujet traite de ce problème, n'hésitez pas à me transmettre le lien (j'ai cherché sur le forum sans succès). Merci pour votre aide !