./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?

1 réponse

  1. 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
    1. 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