PDA

Afficher la version complète : [Réglé] Script BASH et librairie définie dans l'environnement



berny
30/08/2011, 09h00
Bonjour,

J'ai créé un BASH permettant de lancer automatiquement des simulations numériques. Mon script a toujours bien marché sur les serveurs. J'ai décidé d'installer un nouveau serveur (toujours avec Opensuse 11.4) dessus. J'ai installé tout ce dont le modèle numérique avait besoin (librairies, etc)... J'ai remis mon script qui lance le modèle et j'ai défini mes variables d'environnement. J'ai lancé manuellement (./mon_script.bash) dans la console et ça a été nickel. J'ai ensuite décidé de le mettre dans un crontab... Et c'est là que le bash n'a pas fonctionné. Il me dit qu'il manque un chemin vers la librairie OPENMPI... qui est pourtant définie dans mon bashrc. J'ai donc testé mon BASH en définissant mes variables d'environnement dans ce BASH. Et ça n'a toujours pas fonctionné. Pourtant, ça fonctionne toujours parfaitement quand je lance le BASH manuellement. Que faire?

Merci de votre aide :-)

jluce
30/08/2011, 10h35
slt

tu le lance dans la crontab de qui ??

peux tu poster le script

as tu essayer de mettre au debut du script



. /home/touser/.bashrc


a+

berny
01/09/2011, 08h40
bonjour,

je le lance dans le crontab du user (wrf). Au début du script, j'ai mis:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
. /home/wrf/.bashrc


il fonctionne très bien sur les premières lignes..puis se stoppe et me renvoit cette erreur:
./real.exe: error while loading shared libraries: libmpi_f90.so.0: cannot open shared object file: No such file or directory

Pour rappel, si je lance manuellement la commande ./real.exe , il n'y a aucun problème.

Merci

jluce
01/09/2011, 10h39
re

et t'as quoi dans ton /etc/ld.so.conf pour voir ???

t'as bien fait un ldconfig pour bien tout ranger ??

a+

berny
01/09/2011, 10h41
J'ai ceci:

/usr/X11R6/lib64/Xaw3d
/usr/X11R6/lib64
/usr/lib64/Xaw3d
/usr/X11R6/lib/Xaw3d
/usr/X11R6/lib
/usr/lib/Xaw3d
/usr/x86_64-suse-linux/lib
/usr/local/lib
/opt/kde3/lib
/lib64
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/opt/kde3/lib64
include /etc/ld.so.conf.d/*.conf


et c'est quoi une ldconfig? ;-)

jluce
01/09/2011, 11h25
re

ldconfig:http://pwet.fr/man/linux/administration_systeme/ldconfig

peux tu nous donner le résultat de la commande suivante



find / -name libmpi_f90.so.0


a+

berny
01/09/2011, 11h31
Voila le résultat


/usr/lib64/mpi/gcc/openmpi/lib64/libmpi_f90.so.0

jluce
01/09/2011, 11h35
ok fait un



ldconfig -v|grep libmpi_f90.so.0


en root pour voir

a+

berny
01/09/2011, 11h38
Voila

ldconfig: Ne peut évaluer par stat /usr/X11R6/lib64/Xaw3d: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/Xaw3d: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/X11R6/lib/Xaw3d: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib/Xaw3d: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /opt/kde3/lib: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /opt/kde3/lib64: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/sharp: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/java: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/perl: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/php: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/ocaml: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/python: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/lua: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/tcl: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/guile: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/ruby: Aucun fichier ou dossier de ce type
ldconfig: Chemin « /lib » donné plus d'une fois
ldconfig: Chemin « /lib64 » donné plus d'une fois
ldconfig: Chemin « /usr/lib » donné plus d'une fois
ldconfig: Chemin « /usr/lib64 » donné plus d'une fois

jluce
01/09/2011, 11h45
ouais donc il la trouve pas

dans le fichier /etc/ld.so.conf rajoute la ligne /usr/lib64/mpi/gcc/openmpi/lib64/

puis fais un
ldconfig puis un

ldconfig -v|grep libmpi_f90.so.0

et dis nous ce que ca dit

a+

berny
01/09/2011, 11h48
Voila ce qu'il me met ;-)


ldconfig: Ne peut évaluer par stat /usr/X11R6/lib64/Xaw3d: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/Xaw3d: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/X11R6/lib/Xaw3d: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib/Xaw3d: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /opt/kde3/lib: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /opt/kde3/lib64: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/sharp: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/java: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/perl: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/php: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/ocaml: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/python: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/lua: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/tcl: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/guile: Aucun fichier ou dossier de ce type
ldconfig: Ne peut évaluer par stat /usr/lib64/graphviz/ruby: Aucun fichier ou dossier de ce type
ldconfig: Chemin « /lib » donné plus d'une fois
ldconfig: Chemin « /lib64 » donné plus d'une fois
ldconfig: Chemin « /usr/lib » donné plus d'une fois
ldconfig: Chemin « /usr/lib64 » donné plus d'une fois
libmpi_f90.so.0 -> libmpi_f90.so.0.0.0

jluce
01/09/2011, 11h50
mieux

relance ton script entier pour voir si ca va mieux

a+

berny
01/09/2011, 12h46
J'ai relancé... Et c'est passé nickel à cette étape là. Mais ça a bloqué à l'exécutable suivant:

mpirun: command not found

Comme toujours, le mpirun fonctionne si je le lance moi même et pas par le crontab ;-)

jluce
01/09/2011, 13h28
ouais



find / -name mpirun

et



echo $PATH


pour voir

a+

berny
01/09/2011, 13h35
find :

/usr/lib64/mpi/gcc/openmpi/bin/mpirun
/opt/mpich/ch-p4mpd/bin/mpirun
/opt/mpich/ch-p4/bin/mpirun
/home/wrf/WRF/lib/bin/mpirun

echo $PATH:
home/wrf/graphics/ferret/bin:/usr/lib64/mpi/gcc/openmpi/bin:/home/wrf/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin

jluce
01/09/2011, 13h44
re

dans ton script a la place de mpirun mets le chemin complet /usr/lib64/mpi/gcc/openmpi/bin/mpirun pour voir ce que ca dit

a+

berny
01/09/2011, 14h44
Ok ça fonctionne nickel! Merci