#1 Le 07/03/2023, à 18:33
- Ilari1
[Résolu] Nouveau Path
Bonsoir à tous,
pour installer gnatstudio, je dois màj les path, selon la commande suivante.
$ PATH="/opt/gnatstudio/bin:$PATH"; export PATH
Mais je n'arrive pas à le rendre permanent :
$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/media/dubois/4To/Donnees/Courrier/020-Ada/X-Bibliotheque/bin":"/opt/gnatstudio/bin:$PATH"
avec ou sans l'ajout $PATH à la fin, c'est pareil..
Merci de votre aide.
Ps : que fait exactement la commande export PATH, svp ?
--
Modération : balises [ code ] ajoutées. Tu n'es pourtant pas nouveau sur le forum !
Dernière modification par bruno (Le 15/03/2023, à 12:46)
Hors ligne
#2 Le 07/03/2023, à 18:51
- Watael
Re : [Résolu] Nouveau Path
plutôt sans !
je n'utilise pas /etc/environment, ne faut-il pas se reconnecter pour que ça prenne effet dans son environnement ?
je ne suis même pas certain que ce soit pertinent.
mais, est-ce tous les utilisateurs vont utiliser gnatstudio ?
Dernière modification par Watael (Le 07/03/2023, à 19:12)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 07/03/2023, à 18:57
- Ilari1
Re : [Résolu] Nouveau Path
Oui je me suis bien reconnecté plusieurs fois..
Je ne comprends pas ce que les utilisateurs ont a voir ça.
-Je veux simplement faire que ce nouveau chemin soit connu de l'OS et je n'y arrive pas.
Hors ligne
#4 Le 07/03/2023, à 19:08
- ylag
Re : [Résolu] Nouveau Path
Bonjour,
Si tu retires le dernier $PATH à la fin de la ligne dans /etc/environmemt, pour avoir :
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/media/dubois/4To/Donnees/Courrier/020-Ada/X-Bibliotheque/bin":"/opt/gnatstudio/bin"
?
Hors ligne
#5 Le 07/03/2023, à 19:10
- Watael
Re : [Résolu] Nouveau Path
ce qui est défini sous /etc/, l'est globalement : pour tous les utilisateurs .
que dit
$ grep PATH .bashrc
?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 07/03/2023, à 20:13
- Ilari1
Re : [Résolu] Nouveau Path
Et voila :
$ grep PATH .bashrc
$
Hors ligne
#7 Le 07/03/2023, à 20:15
- MicP
Re : [Résolu] Nouveau Path
Bonjour
…
Ps : que fait exactement la commande export PATH, svp ?
C'est une commande interne de l'interpréteur bash
Voir le retour de la ligne de commande suivante :
man --pager='less -p "export \[-"' bash
… que je recopie ci-dessous :
export [-fn] [nom[=mot]] ...
export -p
Les noms fournis sont marqués pour être exportés automatiquement dans l'environnement des commandes exécutées par la suite.
Si l'option -f est indiquée, les noms se rapportent à des fonctions.
Si aucun nom n'est donné ou si l'option -p est fournie, une liste de noms de toutes les variables exportées est affichée.
L'option -n conduit à supprimer l'attribut d'exportation de toutes les variables nommées.
Si un nom de variable est suivi par =mot, la valeur de la variable est configurée à mot.
export renvoie un état final de 0,
sauf si une option incorrecte est rencontrée,
si un des noms n'est pas un nom correct de variable de l'interpréteur,
ou si l'option -f est fournie avec un nom qui n'est pas une fonction.
=======
Si tu veux que la valeur assignée à la variable PATH soit définie aussi pour l'environnement de bureau, tu pourrais mettre tout ça dans un fichier ~/.xsessionrc
en lançant la ligne de commandes suivante :
echo 'export PATH="/opt/gnatstudio/bin:$PATH"' >> ~/.xsessionrc
Ensuite, tu fermes ta session, et à chaque fois que tu ouvriras une nouvelle session,
la ou les lignes de commandes contenues dans ton fichier ~/.xsessionrc seront lancées => la variable PATH sera modifiée comme tu voulais qu'elle le soit.
Dernière modification par MicP (Le 16/03/2023, à 07:08)
Hors ligne
#8 Le 07/03/2023, à 20:23
- Ilari1
Re : [Résolu] Nouveau Path
En fait, ça marche avec :
dubois@db:~$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/media/dubois/4To/Donnees/Courrier/020-Ada/X-Bibliotheque/bin:/opt/gnatstudio/bin"
dubois@db:~$
Apparemment le bash n'appréciait pas la séquence ":" dans le PATH..
Je dois un peu fatigué.. merci à tous.
Bonne soirée.
Hors ligne
#9 Le 07/03/2023, à 20:39
- MicP
Re : [Résolu] Nouveau Path
En fait, ça marche avec :
dubois@db:~$ cat /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/media/dubois/4To/Donnees/Courrier/020-Ada/X-Bibliotheque/bin:/opt/gnatstudio/bin" dubois@db:~$
…
Oui, mais en utilisant le fichier /etc/environnement
la valeur assignée à la variable PATH est modifiée de façon globale <=> pas seulement pour le compte utilisateur concerné => tous les comptes utilisateurs (même le compte root) verront la valeur assignée à leur variable PATH modifiée
Ça aura certainement des conséquences inattendues.
Dernière modification par MicP (Le 07/03/2023, à 21:31)
Hors ligne
#10 Le 07/03/2023, à 23:08
- ylag
Re : [Résolu] Nouveau Path
Bonsoir,
Ça aura certainement des conséquences inattendues.
Même sur une installation en mono-utilisateur ?
A+
Hors ligne
#11 Le 14/03/2023, à 19:35
- Ilari1
Re : [Résolu] Nouveau Path
Pour ma culture, si l'on veut attribuer un chemin à un utilisateur ou compte en particulier on fait comment, svp ?
Hors ligne
#12 Le 15/03/2023, à 09:14
- FrancisFDZ
Re : [Résolu] Nouveau Path
Bonjour
Pour ma culture, si l'on veut attribuer un chemin à un utilisateur ou compte en particulier on fait comment, svp ?
Voir #7
-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]
Hors ligne
#13 Le 15/03/2023, à 11:57
- Ilari1
Re : [Résolu] Nouveau Path
-J'entends bien que etc/environment soit partagé par tous les comptes et users, mais on ne voit pas du tout en quoi le post #7 répond à la question posée.
-Soit 2 utilisateurs A & B, comment fait-on que l'OS connaisse des chemins spécifiques à A & B.
Par ex. A connaitra Path-A qui ne sera pas connu de B et inversement B connaitra Path-B qui ne sera pas connu de A.
-Les commandes en question devraient normalement parler de $USER, ce que l'on ne voit pas dans le post #7.
Merci
Hors ligne
#14 Le 15/03/2023, à 12:52
- bruno
Re : [Résolu] Nouveau Path
Comme indiqué dans le #7 tu mets cela dans le fichier ~/.xsessionrc (bof…) ou mieux dans le fichier ~/.bashrc.
N.B. : ~ ⇔ /home/$USER. Plus précisément le caractère ~ est interprété par le SHELL (expansion) comme l'emplacement complet du dossier personnel de l'utilisateur courant.
Dernière modification par bruno (Le 15/03/2023, à 12:53)
#15 Le 15/03/2023, à 13:30
- Watael
Re : [Résolu] Nouveau Path
~ == "/home/$USER" == "$HOME"
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#16 Le 15/03/2023, à 13:34
- bruno
Re : [Résolu] Nouveau Path
~ == "/home/$USER" == "$HOME"
Pour les utilisateurs standard c'est généralement le cas, mais dans l'absolu, non
On peut très bien avoir $HOME=/srv/tata/toto
Exemple /var/www pour l'utilisateur www-data
#17 Le 15/03/2023, à 13:55
- Watael
Re : [Résolu] Nouveau Path
il vaut donc, alors, mieux indiquer $HOME, que /home/$USER.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#18 Le 15/03/2023, à 21:40
- MicP
Re : [Résolu] Nouveau Path
… tu mets cela dans le fichier ~/.xsessionrc (bof…) ou mieux dans le fichier ~/.bashrc. …
Si tu ne définis la valeur de la variable PATH que dans le fichier ~/.bashrc
cette définition ne sera pas prise en compte par les applications lancées depuis l'environnement de bureau qui ne lanceraient pas un shell bash
et elle ne sera pas prise en compte si l'utilisateur à choisi d'utiliser un autre shell que bash
En résumé, elle ne sera prise en compte que quand l'utilisateur ouvrira une fenêtre de terminal,
si tant est que cette fenêtre de terminal utilise l'interpréteur de commandes bash
Dernière modification par MicP (Le 15/03/2023, à 22:47)
Hors ligne
#19 Le 15/03/2023, à 22:00
- MicP
Re : [Résolu] Nouveau Path
… Même sur une installation en mono-utilisateur ?
Sur ton système, tu as au moins deux comptes utilisateurs dont un est le compte root
et la valeur qui aura été assignée à la variable PATH est très importante, surtout pour le compte root
puisque c'est cette valeur qui va lui permettre d'accéder à toutes les commandes qui lui permettront d'exécuter toutes les tâches d'administration.
L'exécution des tâches d'administration que va lancer le compte root va aussi dépendre de la valeur qui aura été assignée à la variable PATH
Au final, si la valeur assignée à la variable PATH pour le compte root n'est pas celle qu'il faudrait,
il se peut très bien que certains programmes d'administration ne puissent pas s'exécuter "normalement" voire pas du tout,
ou/et aient des comportement inattendus ou/et désastreux.
Dernière modification par MicP (Le 15/03/2023, à 22:13)
Hors ligne
#20 Le 16/03/2023, à 07:36
- bruno
Re : [Résolu] Nouveau Path
Dans son message #14, bruno a écrit :… tu mets cela dans le fichier ~/.xsessionrc (bof…) ou mieux dans le fichier ~/.bashrc. …
Si tu ne définis la valeur de la variable PATH que dans le fichier ~/.bashrc
cette définition ne sera pas prise en compte par les applications lancées depuis l'environnement de bureau qui ne lanceraient pas un shell bash
Gné ? Les applications n'ont heureusement pas besoin de lancer un shell pour connaître les variables d'environnement ! cf. man getenv
et elle ne sera pas prise en compte si l'utilisateur à choisi d'utiliser un autre shell que bash
Effectivement, mais ce n'est sûrement pas le cas ici. Si tu veux que cela soit indépendant du Shell utilisé tu modifies la variable PATH dans ~/.profile. AMHA, c'est bien mieux que dans .xsessionrc qui n'est sourcé que lors de l'ouverture d'une session graphique Xorg , donc pas avec Wayland et pas dans une console.
la valeur qui aura été assignée à la variable PATH est très importante, surtout pour le compte root
puisque c'est cette valeur qui va lui permettre d'accéder à toutes les commandes qui lui permettront d'exécuter toutes les tâches d'administration.
Lorsque on saisit une commande, ou qu'on l'utilise dans un script, avec juste son nom, le programme correspondant est recherché dans les répertoires précisés par la variable PATH. Si cette variable n'est pas renseignée, ou incomplète, on pourra toujours accéder à une commande en donnant son emplacement complet (/usr/sbin/mke2fs par exemple).
Elle ne permet donc pas d’accéder aux commandes, et empêche encore moins cet accès, elle le facilite ou le rend plus difficile, rien de plus.
Dernière modification par bruno (Le 16/03/2023, à 07:44)
#21 Le 06/07/2023, à 21:15
- Ilari1
Re : [Résolu] Nouveau Path
Bonsoir à Tous,
le PATH ne sert que pour les exécutables, sauf erreur.
Comment fait-on la même chose avec de simple fichiers textes, donc non exécutables, sans créer de cas particulier ?
On veut par exemple, pourvoir faire $ cat <nom_de_fichier> avec succès depuis n'importe ou.
Merci
Ps : le sujet est résolu, je ne sais pas si le forum accepte de continuer la discussion ou bien s'il faut nécessairement ouvrir une autre discussion ?
Dernière modification par Ilari1 (Le 06/07/2023, à 21:15)
Hors ligne
#22 Le 06/07/2023, à 21:24
- iznobe
Re : [Résolu] Nouveau Path
Bonsoir ,
Comment fait-on la même chose avec de simple fichiers textes
On veut par exemple, pourvoir faire $ cat <nom_de_fichier> avec succès depuis n'importe ou.
tu fais alors :
cat /chemin/complet/de_chez_complet/fichier.txt
on appelle ca un chemin absolu . c ' est comme une adresse postale complete au niveau de l' ordi .
si y a des espaces dans le chemin absolu ( complet ) , tu encadres le chemin par des " , comme ceci :
cat "/chemin/complet/de chez complet/fichier.txt"
Dernière modification par iznobe (Le 06/07/2023, à 21:25)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#23 Le 06/07/2023, à 21:33
- Ilari1
Re : [Résolu] Nouveau Path
Oui merci, c'est exactement ce que je ne veux pas faire..
-Je veux pouvoir $ cat <nom-de-fichier> depuis n'importe ou et que ça marche bien sur, comme pour les exécutables quoi !
Ca n'a aucun intérêt, au moins pour moi, de devoir citer le chemin absolu, je voudrais justement pouvoir m'en affranchir.
Hors ligne
#24 Le 06/07/2023, à 21:34
- iznobe
Re : [Résolu] Nouveau Path
Dans ce cas je ne sais pas comment on fait .
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#25 Le 06/07/2023, à 21:56
- Watael
Re : [Résolu] Nouveau Path
combien peut-il y avoir d'exécutables qui portent le même nom ?
alors qu'il y a une infinie possibilité que des fichiers différents (ou pas) portent le même nom dans des emplacements différents.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne