Le Vendredi 18 Janvier 2002 11:33, vous avez écrit : > ||~~~~~~~~~~~~~ > || gwe dixit : > > [...] > > || P.S. : Y aurais pas quelqu'un qui auraient des questions interressantes > || sur le sujet histoire de me rassurer parce que la le doute me prend > || "suis je sur la liste de rigolez.com ou celle de linux-debutant ??" > > Je vais tenter très prétentieusement de satisfaire ta demande : > > tout d'abord, merci pour toutes les réponses concernant la modif de > variables d'environnement. Mais le pb est tjrs là... Lorsque je tente de > lancer l'exécutable TestCat, voici le message de retour : > [spir@localhost CatFontes]$ ./TestCat > ./TestCat: error while loading shared libraries: libqtintf-6.5-qt2.3.so: > cannot open shared object file: No such file or directory > > Voici le PATH actuel : > [spir@localhost CatFontes]$ echo $PATH > /usr//bin:/bin:/usr/bin::/usr/local/bin:/usr/X11R6/bin:/usr/games:/home/spi >r/bin:/usr/local/kylix2/bin:/usr/local/kylix2/lib > > Or libqtintf-6.5-qt2.3.so se trouve dans /usr/local/kylix2/bin, > [root@localhost CatFontes]# slocate libqtintf > /usr/local/kylix2/bin/libqtintf-6.5.0-qt2.3.so > /usr/local/kylix2/bin/libqtintf-6.5-qt2.3.so > Pourquoi le shell ne trouve-t-il pas la librairie en question ? > > > Vous avez peut-être noté que pour le slocate j'ai dû passer en root, vu que > le dossier /usr/local/kylix2 est propriété de root. Donc je me suis dit que > j'allais essayer de lancer TestCat en tant que root, en ayant au préalable > mis le chemin en question dans le PATH de root (et redémarré, pour être sûr > que le nouveau PATh soit actif). Voici donc le contenu de > /root/bash_profile : [root@localhost CatFontes]# cat /root/.bash_profile > # .bash_profile > # Get the aliases and functions > if [ -f ~/.bashrc ]; then > . ~/.bashrc > fi > mesg n > PATH=$PATH:/usr/local/kylix2/bin:/usr/local/kylix2/lib > export PATH > > Et voici le PATH sous root après reboot : > [root@localhost CatFontes]# echo $PATH > /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin > > Là, je pige plus ! Il semble que le bash_profile de root ne soit pas pris > en compte. Le résultat est que je ne peux pas non plus lancer TestCat en > tant que root, même résultat que sous l'utilisateur lambda : > [root@localhost CatFontes]# ./TestCat > ./TestCat: error while loading shared libraries: libqtintf-6.5-qt2.3.so: > cannot open shared object file: No such file or directory > > Du coup, j'ai décidé d'employer le marteau-piqueur et de modifier carrément > /etc/profile, bien que ce soit pas la bonne méthode, vu que seul > l'utilisateur 'spir' a besoin que les chemins des librairies de kylix2 > soient dans son PATH. Voici donc la fin du nouveau /etc/profile : > # Mandrake-Security : if you remove this comment, remove the next line too. > PATH=$PATH:/usr/X11R6/bin:/usr/games:/usr/local/kylix2/bin:/usr/local/kylix >2/lib # Mandrake-Security : if you remove this comment, remove the next line > too. export PATH > > Voici le résultat après reboot : > [spir@localhost spir]$ echo $PATH > /usr//bin:/bin:/usr/bin::/usr/local/bin:/usr/X11R6/bin:/usr/games:/usr/loca >l/kylix2/bin:/usr/local/kylix2/lib:/home/spir/bin:/usr/local/kylix2/bin:/usr >/local/kylix2/lib [spir@localhost spir]$ su > Password: > [root@localhost spir]# echo $PATH > /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin > [root@localhost spir]# > > Le PATH de 'spir' contient les dossiers ajoutés en double (logique !), mais > celui de root ne les contient pas du tout !! > > > Donc, je me suis dit qu'au lieu de lancer mes exécutables en root, j'allais > chercher pourquoi 'spir' ne peut accéder aux dossiers de librairies bien > qu'ils soient dans son PATH. Les permissions sont les suivantes : > [root@localhost kylix2]# ls -ld bin > drwxr-xr-x 2 root root 4096 jan 10 00:37 bin/ > Logiquement, vu que le flag 'x' est positionné, 'spir' accéder au > librairies contenuses dans ces dossiers, non ? Sinon à quoi sert ce bit ? > Je vais quand même permettre aux 'others' de lire et écrire les fichiers de > ces dossiers. Après application de chmod, voici le résultat : > [root@localhost kylix2]# ls -ld bin > drwxr-xrwx 2 root root 4096 jan 10 00:37 bin/ > > D'où, je repasse en mode utilisateur lambda pour tenter à nouveau de lancer > mon prog TestCat : > [spir@localhost CatFontes]$ ./TestCat > ./TestCat: error while loading shared libraries: libqtintf-6.5-qt2.3.so: > cannot open shared object file: No such file or directory > > Là, je laisse béton... ? > A vot' bon coeur ! > > denis > > PS : question subsidiare : peut-on indiquer dans le PATH un dossier et tous > ses sous-dossiers, évidemment sans les nommer explicitement ? en fait, > c'est pour lancer mes essais de prog depuis la ligne de commande ou la > fenêtre "lancer" sans avoir à indiquer le chemin, ni me positionner dans le > dossier de l'exécutable, ni écrire "./". > denis le feignant qu'aime pas trop perdre son temps
tu veux faire pointer PATH vers une librairies? cette variable sert à positionner les chemins d'accès vers les executables. pour une librairie, il faut que le chemin d'accès soit dans LD_LIBRARY_PATH. chacun à sa place... si tu veux lancer un programme toto dont les fichiers sont dans /usr/local/toto avec l'executable toto dans /usr/local/toto/bin et les librairies dans /usr/local/toto/lib il faut donc exporter les 2 variables, soient de façon permanente dans /etc/profile ou $HOME/.bashrc, soit dans un script destiné à lancer toto. dans ce dernier cas, le script runtoto sera placé dans un répertoire de PATH et devra ressembler à ça: #!/bin/bash #runtoto export PATH=/usr/local/toto/bin:$PATH export LD_LIBRARY_PATH=/usr/local/toto/lib:$LD_LIBRARY_PATH /usr/local/toto/bin/toto pour ne pas avoir à taper ./ devant un executable se trouvant dans le répertoire courrant, ajoute seulement un point à PATH export PATH=.:$PATH bye jipe -- Prenez le temps comme il vient, le vent comme il souffle, la femme comme elle est. Alfred De Musset
Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft? Rendez-vous sur "http://www.mandrakestore.com"