[Résolu] Echec d'installation d'une application - PATH

Bonjour,

Je souhaite installer le logiciel Geogebra sur mon ordinateur. C’est un logiciel de maths qui nécessite d’avoir Java installé.
J’ai donc installé les paquets de la JRE version 6 à partir de synaptics.
En suivant la technique d’installation sur le site de Geogebra (j’ai un fichier Geogebra_etc.bin), je l’ai placé dans un répertoire de mon choix et je le lance. Le résultat est ci-dessous :

[quote]fixe:/usr/local/bin# ls -l
total 22636
-rwxr-xr-x 1 root staff 23147880 2007-12-02 15:08 GeoGebra_3_0_0_0_Release_Candidate_1.bin
fixe:/usr/local/bin# ./GeoGebra_3_0_0_0_Release_Candidate_1.bin
Preparing to install…
Extracting the installation resources from the installer archive…
Configuring the installer for this system’s environment…
No Java virtual machine could be found from your PATH
environment variable. You must install a VM prior to
running this program.
[/quote]

Or java est installé dans ce répertoire : /usr/lib/jvm/java-6-sun/
Et voici mon PATH :

[quote]fixe:/home/thibault# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[/quote]

Que faut-il que je rajoute dans la variable PATH et comment, de sorte à pouvoir lancer mon installation ?

Au passage, comment peut on suggérer aux personnes qui maîtrisent, d’intégrer une application (libre bien sûr) dans les distributions ?

Merci d’avance

Si les binaires de java sont dans /usr/lib/jvm/java-6-sun/, sous bash tu peux simplement ajouter /usr/lib/jvm/java-6-sun/ à ta variable PATH:

PATH=$PATH:/usr/lib/jvm/java-6-sun export PATH
Cependant la variable sera réinitialisée quand tu te déloggueras…

Merci poiuy pour ta réponse. J’ai essayé mais sans effet. Il faut dire que je n’y connais pas grand chose :neutral_face:
Avant j’avais ceci :

J’ai donc fait cette manip :

Je me suis ensuite relogué et voici le résultat :

Je ne comprends pas pourquoi ? Et où est stockée cette variable PATH ?

Merci d’avance

/etc/environnement, /etc/profile, ~/.bash_profile, ~/.bashrc, …
tout ça sont des fichiers susceptibles de modifier le PATH.

Tu as réussi ou pas ? Tu as compris comment il fallait faire pour modifier PATH ou pas ?

Oh lala quelle galère lorsqu’on débute… Comment s’y retrouver dans tout cet embroglio ? :confused:

Déjà la variable PATH n’est pas la mème suivant l’utilisateur :

[quote=“terminaux”]Terminal utilisateur
thibault@portable:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games


Terminal superutilisateur
portable:/home/thibault# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin[/quote]

Là ça va, j’ai compris en affichant le contenu de /etc/profile

[quote="/etc/profile"]if [ “id -u” -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi

inclure le répertoire contenant java dans le path

PATH="${PATH}":/usr/lib/jvm/jre1.6.0_03/bin

export PATH[/quote]

J’ai donc voulu ajouter mon répertoire contenant java dans la variable en ajoutant juste avant le export PATH la ligne suivante :

Pas de résultat concluant après reconnexion

J’ai donc modifié la ligne correspondant au superutilisateur (car c’est en mode superutilisateur que je vais installer le programme qui m’intéresse) :

[quote="/etc/profile"]if [ “id -u” -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/jre1.6.0_03/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi
[/quote]
Même combat, lorsque je fais un echo $PATH en superutilisateur, j’ai toujours le résultat du début (après reconnexion bien sûr).

Je coule, voire je me noie :question:

:smt005 Ouf, ça y est je suis parvenu à installer mon application, il m’a suffit en mode superutisateur de taper le code suivant puis j’ai pu installer mon application.

Oui, c’est vrai le problème n’est pas vraiment résolu en ce qui concerne le PATH car à la connexion suivant le contenu de PATH est à nouveau celui d’avant mais cela a suffit pour installer ce que je voulais. :wink:

:arrow_right: Par contre je suis parvenu à ajouter définitivement mon répertoire java à la variable PATH de l’utilisateur en ajoutant dans ~/.bashrc la ligne de code précédente.
Pour ce qui est de l’administrateur je suppose que je peux faire de même dans /root/.bashrc non ?

:bulb: Si quelqu’un peut me dire par-contre pourquoi les manipulations sur le fichier /etc/profile n’ont pas fonctionné, je suis preneur.

Merci !

Il me semble que le /etc/profile ne sert qu’à la première connexion dans le cas ou un .bash_profile n’existe pas…

Je ne sais pas à quoi servent les différents fichiers mais dans le fichier .bash_profile il n’y a rien qui justifierait que la variable PATH soit réinitialisée à chaque fois ? Voilà ce qu’il s’y trouve chez moi concernant le PATH :

[quote=".bash_profile"]# set PATH so it includes user’s private bin if it exists
if [ -d ~/bin ] ; then
PATH=~/bin:"${PATH}"
fi[/quote]
:question: Au passage, à quoi servent les guillemets et les accolades de “${PATH}” ? n’aurait-on pas pu simplement mettre ? PATH=~/bin:$PATH

Merci en tout cas de me faire avancer dans ma connaissance du système.

[quote]Lorsque  bash  est  lancé  comme interpréteur de commandes de connexion
       interactif ou comme interpréteur non interactif avec l’option  --login,
       il  lit  et  exécute  tout  d’abord  les  commandes se trouvant dans le
       fichier /etc/profile si ce fichier existe. Après lecture de ce fichier,
       il  recherche  ~/.bash_profile,  ~/.bash_login  et ~/.profile, dans cet
       ordre, puis lit et exécute les commandes se trouvant  dans  le  premier
       fichier  existant  et  accessible en lecture. L’option --noprofile peut
       être utilisée à l’appel de l’interpréteur pour  empêcher  ce  comporte‐
       ment.

       Lorsqu’un  interpréteur  de commandes de connexion termine, bash lit et
       exécute les commandes du fichier ~/.bash_logout, s’il existe.

       Quand un interpréteur interactif démarre sans être un  interpréteur  de
       commandes  de  connexion, bash lit et exécute les commandes se trouvant
       dans /etc/bash.bashrc et ~/.bashrc s’ils existent. Ce comportement peut
       être  empêché  à  l’aide  de l’option --norc. L’option --rcfile fichier
       forcera bash à lire et exécuter les commandes dans fichier  plutôt  que
       dans /etc/bash.bashrc et ~/.bashrc.[/quote]
[quote] Remplacement des paramètres
       Le caractère « $ » permet d’introduire le développement des paramètres,
       la substitution de commande ou le développement arithmétique. Le nom du
       paramètre  ou  du  symbole à développer peut être encadré par des acco‐
       lades qui sont facultatives mais servent à éviter le  développement  de
       la  variable  à partir de caractères la suivant immédiatement qui pour‐
       raient être considérés comme appartenant à son nom.
[/quote]

[quote]Lorsque bash est lancé comme interpréteur de commandes de connexion
interactif ou comme interpréteur non interactif avec l’option --login,
il lit et exécute tout d’abord les commandes se trouvant dans le
fichier /etc/profile si ce fichier existe. Après lecture de ce fichier,
il recherche ~/.bash_profile, ~/.bash_login et ~/.profile, dans cet
ordre, puis lit et exécute les commandes se trouvant dans le premier
fichier existant et accessible en lecture. L’option --noprofile peut
être utilisée à l’appel de l’interpréteur pour empêcher ce comporte‐
ment.

   Lorsqu’un  interpréteur  de commandes de connexion termine, bash lit et
   exécute les commandes du fichier ~/.bash_logout, s’il existe.

   Quand un interpréteur interactif démarre sans être un  interpréteur  de
   commandes  de  connexion, bash lit et exécute les commandes se trouvant
   dans /etc/bash.bashrc et ~/.bashrc s’ils existent. Ce comportement peut
   être  empêché  à  l’aide  de l’option --norc. L’option --rcfile fichier
   forcera bash à lire et exécuter les commandes dans fichier  plutôt  que
   dans /etc/bash.bashrc et ~/.bashrc.[/quote]

[quote] Remplacement des paramètres
Le caractère « $ » permet d’introduire le développement des paramètres,
la substitution de commande ou le développement arithmétique. Le nom du
paramètre ou du symbole à développer peut être encadré par des acco‐
lades qui sont facultatives mais servent à éviter le développement de
la variable à partir de caractères la suivant immédiatement qui pour‐
raient être considérés comme appartenant à son nom.
[/quote]

Merci beaucoup Poiuy, je ne savais pas que le bash avait sa page man. Au moins là c’est clair, je sais ce qu’il se passe. :slightly_smiling: