Question Comment ajouter un répertoire au PATH?


Comment ajouter un répertoire au $PATH dans Ubuntu et rendre les modifications permanentes?


626
2017-07-22 20:42


origine


help.ubuntu.com/community/EnvironmentVariables Il y a tout ce que vous devez savoir. J'ai découvert qu'une grande partie de la saisie était incorrecte ou au moins la méthode n'était pas suggérée. C'est une excellente information qui vous permettra de déterminer où modifier votre variable d'environnement en fonction de la raison pour laquelle vous le faites et de la manière exacte de le faire sans tout gâcher (comme je l'ai fait après certains des mauvais conseils susmentionnés). Si longtemps, et merci pour tout le poisson! - Bus42


Réponses:


Utiliser ~ / .profile pour définir $ PATH

Un chemin mis en place .bash_profile ne sera défini que dans un shell de connexion bash (bash -l). Si vous mettez votre chemin dans .profile il sera disponible pour votre session de bureau complète. Cela signifie que même la métacité l’utilisera.

Par exemple ~/.profile:

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

Btw, vous pouvez vérifier la variable PATH d'un processus en regardant son environnement dans /proc/[pid]/environ (remplacez [pid] par le numéro de ps axf). Par exemple. utilisation grep -z "^PATH" /proc/[pid]/environ

Remarque:

bash comme un shell de connexion n'analyse pas .profile si soit .bash_profile ou .bash_login existe De man bash :

il recherche ~ / .bash_profile, ~ / .bash_login et ~ / .profile, dans cette   ordre, et lit et exécute les commandes du premier qui existe   et est lisible.

Voir le réponses ci-dessous pour plus d'informations sur .pam_environment, ou .bashrc pour les shells interactifs sans connexion, ou définissez la valeur globalement pour tous les utilisateurs en plaçant un script dans /etc/profile.d/ Ou utiliser /etc/X11/Xsession.d/ pour affecter la session des gestionnaires d'affichage.


396
2017-07-22 22:04



Cool, ça a fonctionné. J'ai vu où il va ajouter automatiquement le répertoire bin si je le fais, donc je l'ai juste utilisé à la place des scripts. TY - justingrif
Sur Xbunutu, .profile n'est pas exécuté donc je le mets dans .bashrc et ça marche. - tekumara
Cette documentation est très bien faite: Documentation officielle sur la variable d'environnement. Pensez à le lire (pour ne pas dire qu'il est mis à jour vers la dernière version des règles pour ajouter des valeurs à la variable d'environnement). - Michele
Où dans .profile ajoute-t-on le chemin ?? - Vineet Kaushik
Je n'ai toujours aucune idée où ajouter ma partie de chemin supplémentaire. J'ai besoin d'ajouter le SDK Android à mon chemin ... PATH="$HOME/bin:$PATH" Donc je l'ajoute? - Jamie Hutber


modifier .bashrc dans votre répertoire personnel et ajoutez la ligne suivante:

export PATH="/path/to/dir:$PATH"

Vous devrez vous procurer votre .bashrc ou déconnecter / connecter (ou redémarrer le terminal) pour que les modifications prennent effet. Pour trouver votre .bashrc, tapez simplement

$ source ~/.bashrc

255
2017-07-22 20:45



Comment vous "sourcez votre .bashrc"? Comment" redémarrer le terminal "? - isomorphismes
En bash c'est tout simplement '. .bashrc ' - Ophidian
Je pensais que vous étiez dans votre répertoire personnel. puisque c'est là que se trouve le fichier .bashrc que vous voulez éditer. - Ophidian
.bashrc n'est pas le bon endroit pour définir des variables d'environnement. Ils devraient y aller .profile ou .pam_environment. Voir mywiki.wooledge.org/DotFiles - geirha
@LaoTzu . .bashrc ne pas .bashrc :) ou source .bashrc d'ailleurs - Znarkus


L'endroit recommandé pour définir permanent, à l'échelle du système Les variables d'environnement applicables à tous les utilisateurs se trouvent dans:

/etc/environment

(qui est où le défaut PATH est défini)

Cela fonctionnera dans les ordinateurs de bureau ou les consoles, gnome-terminal ou TTY, pluie ou brillance;)

  • Pour éditer, appuyez sur Alt+F2 et tapez:

    gksudo gedit /etc/environment
    

    (ou ouvrez le fichier en utilisant sudo dans votre éditeur de texte préféré)

Pour effectuer des modifications, exécutez . /etc/environment. Comme ce fichier est juste un script simple, il s'exécutera et assignera le nouveau chemin au PATH variable d'environnement. Pour vérifier run env et voir le PATH valeur dans la liste.

En relation:


101
2017-07-31 03:49



et puis vous devez redémarrer pour que les modifications prennent effet ... - Lee
C'est exactement ce dont j'avais besoin. Provisionner une image vm à jeter par le biais du vagabond et ajouter le nœud et le npm au chemin. - Austin Pray
Pour prendre en compte les changements d'effet. / etc / environement (oui, dot, un espace et / etc / environment). Comme ce fichier n'est qu'un simple script, il s'exécutera et assignera le nouveau chemin à la variable d'environnement PATH. Pour vérifier l'exécution de env et voir la valeur de PATH dans la liste. - WindRider
J'avais besoin de courir source /etc/environment recharger les modifications - JohnnyAW


Je pense que la manière canonique dans Ubuntu est la suivante:

  • créer un nouveau fichier sous /etc/profile.d/

    sudo vi /etc/profile.d/SCRIPT_NAME.sh
    
  • ajoutez-y:

    export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
    
  • et lui donner l'autorisation d'exécuter

    sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
    

54
2018-01-09 01:31



Il est généralement plus sûr d'ajouter votre chemin personnalisé à la fin de PATH au lieu du début. Cela évite de remplacer accidentellement des commandes système avec vos programmes (ou les programmes malveillants de quelqu'un d'autre). Cela évite également beaucoup de confusion lorsque quelqu'un d'autre travaille sur votre système (ou vous donne des conseils) et les commandes que vous avez «remplacées» produisent des résultats inattendus. - Joe


Pour les débutants complets (comme moi) qui sont plus à l'aise avec l'interface graphique:

  1. Ouvrez votre $HOME dossier.
  2. Aller à Vue → Montrer les fichiers cachés ou appuyez sur Ctrl + H.
  3. Clic droit sur .profile et cliquez sur Ouvrir avec l'éditeur de texte.
  4. Faites défiler vers le bas et ajoutez PATH="$PATH:/my/path/foo".
  5. Sauvegarder.
  6. Déconnectez-vous et reconnectez-vous pour appliquer les modifications (laissez Ubuntu se charger .profile).

44
2017-10-24 22:05



La modification du fichier .profile n'est plus recommandée.Vous pouvez toujours utiliser cette méthode pour modifier le fichier .pam_environment voir: help.ubuntu.com/community/EnvironmentVariables - PulsarBlow
Merci @PulsarBlow! Je ne suis pas vraiment sûr de la différence et de l'avantage, bien sûr ... C'est l'URL directe de la section concernée: help.ubuntu.com/community/… - dain
Cette réponse a empêché mon système de se connecter car tous les chemins étaient remplacés. Utiliser Ubuntu 16.04. - Frisbetarian
@Frisbetarian vous devez vous assurer d'ajouter le $PATH: bit qui inclut la définition PATH existante - dain
@dain: votre commentaire m'a sauvé la vie! - Py-ser


Pour les variables d'environnement persistantes disponibles pour des utilisateurs particuliers uniquement. Je recommande fortement la documentation officielle d'Ubuntu.

https://help.ubuntu.com/community/EnvironmentVariables

En référence à la documentation ci-dessus, j'ai configuré mon Outils de développement du SDK Android par:

  1. créer ~/.pam_environment fichier dans le répertoire personnel.
  2. dont le contenu est PATH DEFAULT=${PATH}:~/android-sdk-linux/tools.
  3. un chemin d’utilisateur personnalisé supplémentaire peut être ajouté en séparant les chemins deux points (:).
  4. cela nécessite re-connecter, ce qui signifie que vous devez vous déconnecter et vous reconnecter à l'environnement de bureau.

40
2017-12-08 23:07



C'est la meilleure réponse. - Paulo Coghi


Mettez cette ligne dans votre ~/.bashrc fichier.

Il est obtenu à chaque fois que vous ouvrez un terminal

MODIFIER: Basé sur les commentaires ci-dessous, pour un paramètre plus général qui s'appliquera à tous les shells (y compris lorsque vous frappez Alt-F2 dans l'unité), ajoutez la ligne à votre ~/.profile fichier. Probablement ne devrait pas faire les deux cependant, car le chemin sera ajouté deux fois à votre PATH environnement si vous ouvrez un terminal.


25
2017-07-31 01:08



En fait, je pensais que vous définissiez la voie soit $HOME/.profile pour les paramètres personnels, ou /etc/profile pour tous les utilisateurs. Mais si cela n'est nécessaire que pour bash, je suppose que l'un ou l'autre fonctionnera. - Marty Fried
Si vous le mettez dans ~/.bashrc, il ne sera disponible que dans les terminaux que vous ouvrez. Par exemple. Si vous appuyez sur Alt + F2 et essayez d'exécuter une commande depuis ce répertoire, il ne le trouvera pas. Si vous le mettez dans ~/.profile ou ~/.pam_environment, la session gnome (ou quel que soit DE que vous utilisez) en héritera. Ajout de PATH dans ~/.bashrc L'inconvénient est que si vous ouvrez / exec bash de manière interactive à partir d'un autre shell interactif, cela sera ajouté plusieurs fois. - geirha
Je n'ai pas vraiment étudié cela depuis un moment, alors j'ai fait une recherche, et il semble qu'il y ait au moins 95 manières différentes de définir le chemin, dont la plupart sont discutées ici. Je n'ai jamais compris lequel est le meilleur. je pense ~/.profile est correct pour les chemins personnels, cependant; c'est là qu'Ubuntu ajoute le ~/bin annuaire. Et j'avoue que j'ai un peu exagéré sur le nombre de façons - juste un peu. - Marty Fried
@MartyFried, oui, pour citer le bot dans #bash sur freenode: «La grande majorité des scripts bash, du code, des didacticiels et des guides sur Internet sont des pièges. Sturgeon était un optimiste. »En utilisant google pour le problème bash, vous trouverez souvent beaucoup de solutions à moitié fonctionnelles avant que vous en trouviez une bonne. Oh et je partirais avec ~/.profile dans ce cas aussi. - geirha
@geirha - Je suis d'accord que la plupart des guides sur Internet en général sont probablement de la merde, en particulier tout ce qui est linux, puisque différentes distributions, voire différentes versions du même, font les choses différemment. Cela se résume généralement à ce qui fonctionne, mais la plupart des gens ne réalisent pas que ce qui fonctionne est simplement ce qui fonctionne, pas nécessairement ce qui est correct ou même ce qui fonctionnera toujours. J'essaie de trouver laquelle des deux manières est correcte, parce que je déteste faire les choses plus d'une fois - mais ce n'est pas toujours facile. :) - Marty Fried