Définition permanente de la variable d'environnement PATH dans OSX

143

J'ai lu plusieurs réponses sur la façon de définir des variables environnementales sur OSX de manière permanente.

Tout d'abord, j'ai essayé ceci, Comment définir définitivement $ PATH sous Linux / Unix? mais j'ai eu un message d'erreur disant no such file and directory, donc j'ai pensé que je pourrais essayer ~/.bash_profileau lieu de ~/.profilemais cela n'a pas fonctionné.

Deuxièmement, j'ai trouvé cette solution Comment définir le $ PATH tel qu'il est utilisé par les applications dans os x , qui conseille d'apporter des modifications dans

~ / .MacOSX / environment.plist

mais encore une fois j'ai eu une no such file and directoryerreur.

J'ai besoin d'un moyen de définir ces variables de sorte qu'il ne soit pas nécessaire de les définir encore et encore chaque fois que j'ouvre une nouvelle session de terminal.

patti_jane
la source
vous pouvez simplement créer ~ / .profile la plupart des systèmes * nix reconnaissent le fichier et l'utilisent s'il existe. vous pourriez avoir besoin d'un redémarrage cependant
trve.fa7ad
~ / .MacOSX / environment.plist est obsolète.
Pierre ALBARÈDE

Réponses:

258

Vous devez l'ajouter à /etc/paths.

Référence (qui fonctionne pour moi): Ici

Nitish
la source
6
C'est la seule solution qui fonctionne sur El Capitan. Mieux que modifier .bash_profileet .profile.
IgorGanapolsky
1
A voté la réponse pour la référence ajoutée qui explique également comment supprimer des éléments du chemin (dans les commentaires).
Amudhan
Cela a fonctionné à EL Capitan. Fermez tous les terminaux et ouvrez un nouveau terminal pour vérifier echo $ PATH.
Prem Ananth C
La réponse a 5 ans mais c'est toujours la solution la plus simple et la plus simple. Merci pour la réponse + la référence
Rachit Magon
N'oubliez pas de «redémarrer» votre terminal.
Neeraj Singh le
27

J'ai trouvé que certains fichiers peuvent affecter la $PATHvariable dans macOS (fonctionne pour moi, 10.11 El Capitan), répertoriés ci-dessous:

  1. Comme l'a dit la réponse la plus votée vi /etc/paths, ce qui est recommandé de mon point de vue.

  2. N'oubliez pas non plus le /etc/paths.drépertoire, qui contient les fichiers pouvant affecter la $PATHvariable, définissez le chemin gitet mono-commanddans mon cas. Vous pouvez ls -l /etc/paths.drépertorier des éléments et rm /etc/paths.d/path_you_dislikesupprimer des éléments.

  3. Si vous utilisez un environnement «bash» (par défaut Terminal.app, par exemple), vous devriez vérifier ~/.bash_profileou ~/.bashrc. Il n'y a peut-être pas encore ce fichier, mais ces deux fichiers ont des effets sur le $PATH.

  4. Si vous utilisez un environnement "zsh" ( Oh-My-Zsh , par exemple), vous devriez vérifier au ~./zshrclieu de ~/.bash*chose.

Et n'oubliez pas de redémarrer toutes les fenêtres du terminal, alorsecho $PATH . La $PATHchaîne sera PATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2.

Vous avez remarqué que les deux premières façons ( /etc/pathset /etc/path.d) sont dans le /répertoire qui affectera tous les comptes de votre ordinateur tandis que les deux dernières façons ( ~/.bash*ou ~/.zsh*) sont dans le ~/répertoire (aka, /Users/yourusername/) qui n'affectera que les paramètres de votre compte.

En savoir plus: Mac OS X: définir / modifier la variable $ PATH - nixCraft

iplus26
la source
2
J'aime assez éditer .bash_profile dans certains cas, car si vous aviez deux comptes utilisateurs sur votre machine, vous pourriez ajouter des scripts juste pour l'un d'entre eux par exemple ~ / dev / scripts
PeteW
ce que je ne savais pas, c'est que j'utilisais zsh au lieu de bash. Merci!
Lionne
11

Vous pouvez également ajouter ceci

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

à ~/.bash_profile, puis créez ~/.bashrcoù vous pouvez simplement ajouter plus de chemins à PATH. Un exemple avec.

export PATH=$PATH:.
omoman
la source
Je vous remercie. J'ai utilisé la solution précédente, mais si j'applique cette méthode, cela signifie-t-il que je peux également définir les variables DYLD_LIBRARY_PATH comme permanentes?
patti_jane
Oui, vous devriez pouvoir le faire. Si vous voulez voir les changements, fermez votre terminal et rouvrez-le, ou tapez. ~/.bashrc
omoman
J'ajoute le code ci-dessus à . ~/.bash_profile, puis rouvre le terminal et tapez . ~/.bashrc, mais il ne dit pas de fichier ou de répertoire?
patti_jane
Vous devez le créer. Les lignes ci-dessus vous indiquent .bash_profilede charger .bashrcs'il existe. Ensuite, dans le vide .bashrc, vous pouvez ajouter tout ce que vous voulez.
omoman
Merci beaucoup! Je sais que je demande trop, mais connaissez-vous un lien où il est correctement indiqué comment créer .bashrc? Je n'ai pas réussi à en trouver un bon.
patti_jane
8

Vous pouvez ouvrir l'un des fichiers suivants:

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)

Et ajouter:

export PATH="$PATH:your/new/path/here"
Tiago
la source
8

Pour qu'un nouveau chemin soit ajouté à la variable d'environnement PATH sous MacOS, créez simplement un nouveau fichier sous le /etc/paths.drépertoire et ajoutez le chemin d'écriture à définir dans le fichier. Redémarrez le terminal. Vous pouvez vérifier avec echo $PATHà l'invite pour confirmer si le chemin a été ajouté à la variable d'environnement.

Par exemple: pour ajouter un nouveau chemin /usr/local/sbinà la PATHvariable:

cd /etc/paths.d
sudo vi newfile

Ajoutez le chemin au newfileet enregistrez-le.

Redémarrez le terminal et tapez echo $PATHpour confirmer

Rishabh Mishra
la source
Je ne sais pas pourquoi cette réponse est rejetée. Cela semble être une manière raisonnable et sensée d'organiser les variables de chemin. J'ai utilisé paths.d pour créer des fichiers individuels pour chaque variable de chemin non standard.
p_q
1

J'ai essayé la première méthode et je suis passé par la page de référence, le réglage du chemin bien exécuté, mais cela n'a pas ferré le chemin défini lorsque j'écho $ PATH

IgnitedMind
la source
1
Avez-vous fermé le terminal et redémarré, ou appelé sourcepour charger le nouvel environnement?
Dom
yaa.. terminal redémarré..mais la variable PATH n'existe pas encore
IgnitedMind
Qu'est-ce que tu coques? Vérifiez avec ps -p $$. Si ce n'est pas bash, les fichiers de démarrage sont nommés différemment.
Pierre ALBARÈDE
0

Pour configurer le chemin sur Mac, deux méthodes peuvent être suivies.

  1. Créez un fichier pour le nom de la variable et collez-y le chemin sous /etc/paths.d et source le fichier dans profile_bashrc.
  2. Exporter la variable de chemin en ~/.profile_bashrctant que

    exporter VARIABLE_NAME = $ (PATH_VALUE)

ET source le chemin. C'est simple et stable.

Vous pouvez définir n'importe quel path variablepar Mac terminalou dans linuxégalement.

Ram Krishna
la source