./prog fonctionne, mais /usr/bin/prog non

Phiphi -  
 Phiphi -
Salut a tous,

voila, j'ai un petit souci, j'utilise azureus comme client bittorrent, c'est un client qui utilise java.
j'ai bien java installé, et j'avais décompressé l'archive d'azureus dans mon home
suite a pas mal de rangement, je l'ai déplacé dans un dossier "~/PROGRAMMES/"
pour le lancer, j'avais fait un lien qui n'est maintenant plus valable bien sur, donc j'ai rechangé ce lien :

root # ln -s /home/phiphi/PROGRAMMES/Azureus/azureus /usr/local/bin/azureus

puis en root comme en utilisateur normal, which azureus me donne bien /usr/local/bin/azureus

seulement, lorsque je lance dans une console

[12:58] phiphi > azureus
Starting Azureus...
Java exec found in PATH. Verifying...
Suitable java version found [java = 1.4.2-01]
Configuring environment...
Loading Azureus:
java -cp :*.jar -Djava.library.path=/usr/local/bin org.gudy.azureus2.ui.swt.Main ''
Exception in thread "main" java.lang.NoClassDefFoundError: org/gudy/azureus2/ui/swt/Main
Azureus TERMINATED.

alors que :

[12:58] phiphi > /home/phiphi/PROGRAMMES/Azureus/azureus
Starting Azureus...
Java exec found in PATH. Verifying...
Suitable java version found [java = 1.4.2-01]
Configuring environment...
Loading Azureus:
java -cp :Azureus2.2.0.2.jar:Azureus2.jar:swt.jar:swt-mozilla.jar:swt-pi.jar -Djava.library.path=/home/phiphi/PROGRAMMES/Azureus org.gudy.azureus2.ui.swt.Main ''
DEBUG::Sun Feb 20 12:59:07 CET 2005

fonctionne

la différence que je vois est soulignée, mais je ne comprends pas ce que ca signifie...
qqn pour m'eclairer?
A voir également:

1 réponse

kmf
 
Il existe de programmes qui ne marche pas si on les deplace et il y en a d'autres ou on peut deplacer mais il faut garder le nom. Souvent il y a de chemins pour chercher autres fichiers (plugins, bibliotheques, fichiers de config) et il faut assurer qu'on trouve bien ces fichiers.

Dans ton cas je crois il y a de plugins javas (fichier *.jar ?) qui doivent etre dans le meme repertoire relatif a l'exectuable ou dans un endroit specifique.
Dans un cas il cherche ici
java.library.path=/usr/local/bin
et dans l'autre cas il cherche ici:
java.library.path=/home/phiphi/PROGRAMMES/Azureus
Il faut donc aussi copier tous ces plugins au bon endroit ou faire les liens, mais meme ca, ce n'est pas garanti de bien marcher. Il peut y avoir d'autre fichiers de config, bibliotheques qu'il cherche.

Il vaut mieux que tu installes propremment ton client des le debut dans le bon arbre (je conseillerai /usr/local si c'est a partir des source avec un tar).
S'il y a le script configure pour ton client il faut prendre l'option --prefix:
./configure --prefix=/arbre  # par default /usr/local
make
su -
cd /repertoire_de_compilation
make install

avec le "make install" il est garantie que tous les fichiers supplementaires seront bien installes au bon endroit (souvent /arbre/lib/... ou /arbre/share/...) et le binaire se trouvera dans: /arbre/bin/...
Tu peux choisir /arbre=/usr pour installer le binaire dans /usr/bin mais ce n'est pas propre car tu melanges les paquets installes avec rpm avec les pasquets de type tar. Il vaut mieux rester avec le default /usr/local et veiller que tu aies bien /usr/local/bin/... dans ton chemin (PATH).
0
Phiphi
 
Merci kmf!

bon, en fait effectivement, l'executable comporte les lignes suivantes :

# get the app dir
PROGRAM_DIR=`dirname "$0"`
PROGRAM_DIR=`cd "$PROGRAM_DIR"; pwd`

en fait, si je me rappelle bien, j'ai pas eu a compiler ce prog... fallait juste extraire le tar.gz, puis ./azureus
je pensais que le lien faisait implicitement la commande cd aussi, mais apparemment non

en fait, j'ai rajouté le chemin relatif (/home/phiphi/PROGRAMMES/Azureus) a mon path et tout est rentré dans l'ordre

Phiphi
0