Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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. hmm
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"

?

En 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

Dans son message #1, Ilari1 a écrit :


  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,

MicP a écrit :

Ça aura certainement des conséquences inattendues.

Même sur une installation en mono-utilisateur ?

A+

En 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

Ilari1 a écrit :

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)

En ligne

#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

Watael a écrit :
~ == "/home/$USER" == "$HOME"

Pour les utilisateurs standard c'est généralement le cas, mais dans l'absolu, non wink
On peut très bien avoir $HOME=/srv/tata/toto
Exemple /var/www pour l'utilisateur www-data

En ligne

#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

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

Dans son message #10, ylag a écrit :

… 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

MicP a écrit :
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

MicP a écrit :

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.

MicP a écrit :

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)

En ligne

#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 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 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