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";

Répondre à