Définir des variables d'environnement sur Mac OS X Lion

quand quelqu'un dit "éditez votre .fichier plist" ou "votre .profil" ou ".bash_profile " etc, Cela me confond. Je n'ai aucune idée où ces fichiers sont, comment les créer si je dois le faire, etc, et aussi pourquoi il semble y en avoir tant de différents (pourquoi? Font-ils des choses différentes?)

alors quelqu'un pourrait s'il vous plaît expliquer très patiemment à un utilisateur précédent de Windows (voulant désespérément devenir plus familier avec l'agréable si initialement quelque peu confus OS X monde) comment faire étape par étape?

j'ai besoin que les variables soient définies à la fois pour les applications GUI et les applications en ligne de commande, et pour le moment c'est pour un script ant qui a besoin des variables, mais il y aura très probablement d'autres besoins aussi.

s'il vous plaît noter que J'ai Lion aussi, puisque beaucoup de réponses que vous obtenez Googling semblent être dépassés pour Lion...

aussi noter que j'ai pratiquement aucune expérience en utilisant le Terminal. Je suis prêt à apprendre, mais s'il vous plaît expliquez pour un novice...

501
demandé sur Marcus Leon 2011-09-21 18:37:10

15 réponses

tout d'abord, une chose à reconnaître sur OS X est qu'il est construit sur Unix. C'est là que les .bash_profile. Lorsque vous démarrez L'application Terminal dans OS X, vous obtenez un shell bash par défaut. La coque de bash vient D'Unix et quand il charge il exécute le .BASH_PROFILE script. Vous pouvez modifier ce script pour votre utilisateur pour modifier vos paramètres. Ce fichier se trouve à:

~/.bash_profile

mise à jour pour Mavericks

OS X Mavericks n'utilise pas l'environnement.plist - du moins pas pour les applications Windows OS X. Vous pouvez utiliser le launchd configuration pour les applications fenêtrées. Le. bash_profile est toujours supporté car il fait partie du shell bash utilisé dans le Terminal.

Lion et Lion de montagne seulement

OS X windowed applications reçoivent des variables d'environnement de la votre environnement.dossier plist. C'est probablement ce que vous entendez par ".plist" fichier. Ce fichier se trouve à:

~/.MacOSX/environment.plist

si vous apportez des changements à votre environnement.le fichier plist puis les applications Windows OS X, Y compris l'application de Terminal, auront ces variables d'environnement définies. Toutes les variables d'environnement que vous définissez dans votre .bash_profile n'affectera que vos shells de bash.

en général, je ne fixe des variables dans mon.fichier bash_profile et ne pas changer la .fichier plist (ou fichier launchd sur Mavericks). La plupart des applications fenêtrées OS X n'ont pas besoin d'environnement personnalisé. Ce n'est que lorsqu'une application a réellement besoin d'une variable d'environnement spécifique que je change l'environnement.plist (ou launchd file sur Mavericks).

il semble que ce que vous voulez est de changer l'environnement.fichier plist, plutôt que de la .bash_profile.

Une dernière chose, si vous regardez pour ces fichiers, je pense que vous ne trouverez pas ils. Si je me souviens bien, ils n'étaient pas sur mon installation initiale de Lion.

Edit: Voici quelques instructions pour la création d'un fichier plist.

  1. Ouvrez Xcode
  2. Sélectionner Fichier -> Nouveau -> Nouveau Fichier...
  3. sous Mac OS X sélectionner les ressources
  4. Choisissez un fichier plist
  5. suivez le reste des messages

pour éditer le fichier, vous pouvez contrôler-Cliquez pour obtenir un menu et sélectionnez Ajouter une ligne. Vous pouvez alors ajouter une paire de valeur clé. Pour les variables d'environnement, la clé est le nom de variable d'environnement, et la valeur est la valeur de cette variable d'environnement.

une fois que le fichier plist est créé, vous pouvez l'ouvrir avec Xcode pour le modifier à tout moment.

376
répondu David V 2017-05-23 11:55:07

votre".profil" ou ".bash_profile " sont simplement des fichiers présents dans votre dossier "home". Si vous ouvrez une fenêtre de Finder et cliquez sur le nom de votre compte dans le volet favoris ... vous ne les trouverez pas. Si vous ouvrez une fenêtre de Terminal et tapez "ls" pour lister les fichiers ... vous ne parvenez toujours pas à les voir. Mais vous pouvez les trouver en utilisant "ls-a" dans le terminal. Ou si vous ouvrez votre éditeur de texte préféré (par exemple TextEdit puisqu'il est livré avec OS X) et faites Fichier->Ouvrir puis appuyez sur commande+Shift+. et cliquez sur votre nom de Compte (dossier d'accueil) vous les verrez aussi. Si vous ne les voyez pas, alors vous pouvez simplement créer un dans votre éditeur de texte favori.

maintenant, ajouter des variables d'environnement est assez simple et remarquablement similaire à windows conceptuellement. Dans votre .profil juste ajouter, un par ligne, le nom de la variable et sa valeur comme suit:

export JAVA_HOME=/Library/Java/Home
export JRE_HOME=/Library/Java/Home

etc.

si vous modifiez votre variable "PATH", assurez-vous de incluez le chemin par défaut du système qui était déjà défini pour vous:

export PATH=$PATH:/path/to/my/stuff

maintenant voici la partie excentrique, vous pouvez soit ouvrir une nouvelle fenêtre de Terminal pour avoir les nouvelles variables prendre effet, ou vous aurez besoin de taper ". .profil" ou ". .bash_profile " pour recharger le fichier et faire appliquer le contenu à l'environnement de votre Terminal actuel.

vous pouvez vérifier que vos modifications sont entrées en vigueur en utilisant la commande" set " dans votre Terminal. Tapez juste "ensemble"" (ou "Définir / plus" si vous préférez une liste paginée) et assurez-vous que ce que vous avez ajouté au fichier est là.

quant à l'ajout de variables d'environnement aux applications GUI, ce n'est normalement pas nécessaire et je voudrais en savoir plus sur ce que vous essayez de faire spécifiquement pour mieux vous donner une réponse pour elle.

201
répondu tokkov 2011-09-21 15:07:24

voici un peu plus d'informations concernant spécifiquement la variable PATH dans Lion OS 10.7.x:

si vous devez définir le chemin globalement, le chemin est construit par le système dans l'ordre suivant:

  1. analyse du contenu du fichier /private/etc/paths , un chemin par ligne
  2. analyse du contenu du dossier /private/etc/paths.d . Chaque fichier dans ce dossier peut contenir plusieurs chemins, un chemin par ligne. L'ordre de chargement est déterminé par le nom de fichier d'abord, puis l'ordre des lignes dans le fichier.
  3. a setenv PATH déclaration dans /private/etc/launchd.conf , qui sera ajoute ce chemin au chemin déjà construit dans #1 et #2 (vous ne devez pas utiliser $PATH pour référencer la variable PATH qui a été construite jusqu'à présent). Mais, définir le chemin ici est complètement inutile étant donné les deux autres options, bien que ce soit l'endroit où d'autres variables d'environnement global peuvent être définies pour tous les utilisateurs.

ces chemins et variables sont hérités par tous les utilisateurs et toutes les applications, donc ils sont vraiment globaux -- se déconnecter et ne pas réinitialiser ces chemins -- ils sont construits pour le système et sont créés avant qu'un utilisateur ait la possibilité de se connecter, donc les changements à ceux-ci nécessitent un redémarrage du système pour prendre effet.

BTW, une installation propre de OS 10.7.X Lion n'a pas un environment.plist que je peux trouver, donc il peut fonctionner mais peut aussi être obsolète.

74
répondu jonphipps 2012-01-12 20:16:23
echo $PATH

il imprime la valeur du chemin courant

puis faire vim ~/.bash_profile et écrire

export PATH=$PATH:/new/path/to/be/added

ici vous ajoutez à l'ancien chemin, ainsi préserve l'ancien chemin et ajoute votre nouveau chemin à elle

puis faites

source ~/.bash_profile

ceci l'exécutera et ajoutera le chemin

puis vérifier à nouveau avec

echo $PATH
45
répondu learner_19 2014-03-29 10:28:20

malheureusement aucune de ces réponses n'a résolu le problème spécifique que j'avais.

Voici une solution simple sans avoir à jouer avec bash . Dans mon cas, il obtenait gradle pour travailler (pour Android Studio ).

Btw, ces étapes se rapportent à OSX (Lion de montagne 10.8.5)

  • Ouvrez Terminal.
  • exécuter la commande suivante:

    sudo nano /etc/paths (ou sudo vim /etc/paths pour vim)

    nano

  • allez au bas du fichier, et entrez le chemin que vous souhaitez ajouter.
  • ctrl-x pour quitter.
  • entrez "Y" pour enregistrer le buffer modifié.
  • ouvrir une nouvelle fenêtre de terminal, puis taper:

    echo $PATH

Vous devrait voir le nouveau chemin ajouté à la fin du chemin

j'ai eu ces détails de ce post:

http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q

j'espère que peut aider quelqu'un d'autre

30
répondu wired00 2017-04-01 23:27:08

Explication Simplifiée

ce post/question est un peu vieux, donc je vais répondre à une version simplifiée pour les utilisateurs OS X Lion. Par défaut, OSX Lion ne possède aucun des fichiers suivants:

  • ~/.bashrc
  • ~/.bash_profile
  • ~/.profil

tout au plus, si vous avez fait quelque chose dans le terminal, vous pourriez voir ~/.bashistory

Ce Que Cela Signifie

vous devez créer le fichier pour définir vos commandes de bash par défaut (généralement dans ~/.bashrc). Pour ce faire, utilisez n'importe quelle sorte d'éditeur, bien qu'il soit plus simple de le faire à l'intérieur du terminal:

  1. % > emacs .profil
  2. [de w / dans le type emacs:] source ~/.bashrc
  3. [à partir de w/emacs, tapez:] Ctrl + x Ctrl + s (enregistrer le fichier)
  4. [de w / dans le type emacs:] Ctrl + x Ctrl + c (pour fermer emacs)
  5. % > emacs .bashrc
  6. [à partir de w/emacs type/coller toutes vos commandes bash, enregistrer et quitter]

la prochaine fois que vous quittez et rechargez le terminal, il devrait charger toutes vos préférences de bash. Pour une bonne mesure, c'est généralement une bonne idée de séparer vos commandes en noms de fichiers utiles. Par exemple, dans ~/.bashrc, vous devriez avoir un source ~/.bash_aliases et mettre toutes vos commandes d'alias dans ~/.bash_aliases.

23
répondu vol7ron 2012-07-06 13:18:48

ce qui a fonctionné pour moi est de créer un .launchd.conf avec les variables dont j'avais besoin:

setenv FOO barbaz

Ce fichier est lu par launchd lors de la connexion. Vous pouvez ajouter une variable 'on the fly' à launchd en cours d'exécution en utilisant:

launchctl setenv FOO barbaz`

en fait, .launchd.cond contient simplement des commandes launchctl.

Variables définies de cette façon semblent être présents dans les applications GUI correctement.

si vous essayez de mettre vos variables LANG ou LC_ de cette façon, et il se trouve que vous utilisez iTerm2, assurez-vous de désactiver le paramètre 'Set locale variables automatically' sous L'onglet Terminal du profil que vous utilisez. Cela semble outrepasser les variables d'environnement de launchd, et dans mon cas était la mise en place D'un LC_CTYPE cassé causant des problèmes sur les serveurs distants (qui ont passé la variable).

(L'environnement.plist semble fonctionner sur mon Lion. Vous pouvez utiliser L'environnement RC volet de préférence pour maintenir le fichier au lieu de l'éditer manuellement ou Xcode requis. Il semble toujours fonctionner sur le Lion, bien que sa dernière mise à jour Date de L'époque du léopard des Neiges. En fait mon personnellement méthode préférée.)

18
répondu Gilimanjaro 2011-10-26 13:04:52

configurer votre variable D'environnement PATH sur Mac OS

ouvrez le programme du Terminal (c'est dans votre dossier Applications/Utilites par défaut). Exécutez la commande suivante

touch ~/.bash_profile; open ~/.bash_profile

ceci ouvrira le fichier dans votre éditeur de texte par défaut.

pour ANDROID SDK comme exemple:

vous devez ajouter le chemin d'accès à votre plateforme SDK Android-répertoire d'outils et d'outils. Dans mon exemple j'utiliserai "/ Development / android-sdk-macosx" comme répertoire dans lequel le SDK est installé. Ajouter la ligne suivante:

export PATH=${PATH}:/Development/android-sdk-macosx/platform-tools:/Development/android-sdk-macosx/tools

Enregistrez le fichier et quittez l'éditeur de texte. Exécuter votre .bash_profile pour mettre à jour votre chemin.

source ~/.bash_profile

maintenant chaque fois que vous ouvrez le programme de Terminal Vous chemin sera inclus le SDK Android.

14
répondu Charaf JRA 2014-01-02 12:43:04

ajouter des Variables de chemin à OS X Lion

c'était assez simple et a travaillé pour moi, dans le terminal:

$echo "export PATH=$PATH:/path/to/whatever" >> .bash_profile #replace "/path/to/whatever" with the location of what you want to add to your bash profile, i.e: $ echo "export PATH=$PATH:/usr/local/Cellar/nginx/1.0.12/sbin" >> .bash_profile 
$. .bash_profile #restart your bash shell

une réponse similaire était ici: http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516

11
répondu Yaw Joseph Etse 2012-06-07 06:23:04

Ouvrir Un Terminal:

vi ~/.bash_profile

appliquer changer de système (pas besoin de redémarrer l'ordinateur):

source ~/.bash_profile

(travaille aussi avec macOS Sierra 10.12.1)

7
répondu Do Nhu Vy 2016-11-19 09:07:21

J'ai eu un problème avec Eclipse (commencé comme GUI, pas de script) sur Maverics qu'il n'a pas pris le chemin personnalisé. J'ai essayé toutes les méthodes mentionnées ci-dessus, en vain. Finalement j'ai trouvé la réponse de travail la plus simple basée sur des conseils de ici :

  1. passer à /Applications/eclipse/Eclipse.app/Contents dossier

  2. Modifier Les Infos.fichier plist avec éditeur de texte (ou XCode), ajouter LSEnvironment le dictionnaire pour la variable d'environnement avec chemin d'accès . Noter qu'il comprend aussi /usr/bin etc:

    <dict>
      <key>LSEnvironment</key>
      <dict>
            <key>PATH</key>
            <string>/usr/bin:/bin:/usr/sbin:/sbin:/dev/android-ndk-r9b</string>
      </dict>
      <key>CFBundleDisplayName</key>
      <string>Eclipse</string>
      ...
    
  3. paramètres de rechargement pour app avec

    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.fra‌​mework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
    
  4. Redémarrer Eclipse

5
répondu JaakL 2017-04-13 12:45:06

Permettez-moi de vous illustrer de mon exemple personnel d'une manière très redondante.

  1. après avoir installé JDK, assurez-vous qu'il est installé. enter image description here
  2. parfois macOS ou Linux configure automatiquement la variable d'environnement pour vous contrairement à Windows. Mais ce n'est pas toujours le cas. Donc, nous allons le vérifier. enter image description here La ligne immédiatement après echo $JAVA_HOME sera vide si la variable d'environnement n'est pas définie. Il doit être vide dans votre cas.

  3. Maintenant, nous devons vérifier si nous avons bash_profile fichier. enter image description here Vous avez vu que dans mon cas, nous avons déjà bash_profile. Si nous n'avons pas à créer un fichier bash_profile.

  4. créer un fichier bash_profile. enter image description here

  5. Vérifiez encore pour vous assurer que le fichier bash_profile est là. enter image description here

  6. maintenant, ouvrons le fichier bash_profile. macOS l'ouvre en utilisant son programme par défaut TextEdit. enter image description here

  7. C'est le fichier où les variables d'environnement sont conserver. Si vous avez ouvert un nouveau fichier bash_profile, il doit être vide. Dans mon cas, il était déjà prévu pour le langage de programmation python et la distribution Anaconda. Maintenant, j'ai besoin d'ajouter la variable d'environnement Java qui est juste l'ajout de la première ligne. Vous devez taper la première ligne mot pour mot. La première ligne. Enregistrer et fermer le TextEdit. Alors fermez le terminal. enter image description here

  8. rouvrez le terminal. Nous allons vérifiez si la variable d'environnement est configurée. enter image description here

5
répondu Sumit Pokhrel 2017-09-19 22:11:51

j'ai pris la route des idiots. Ajouté à la fin de/etc / profile

for environment in `find /etc/environments.d -type f`
do
     . $environment
done

a créé un répertoire / etc / environments créer un fichier appelé "oracle" ou "quoi que ce soit" et ajouté les choses dont j'avais besoin défini globalement à elle.

/etc$ cat /etc/environnements.d / Oracle

export PATH=$PATH:/Library/Oracle/instantclient_11_2
export DYLD_LIBRARY_PATH=/Library/Oracle/instantclient_11_2
export SQLPATH=/Library/Oracle/instantclient_11_2
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export TNS_ADMIN=/Library/Oracle/instantclient_11_2/network/admin
4
répondu Rob in Katy 2014-08-21 22:15:23

plus de détails, qui peuvent peut-être être utiles à quelqu'un:

grâce à mes propres explorations, je sais maintenant comment définir les variables d'environnement de 7 de 8 façons différentes. J'essayais de faire passer un envar à une application que je développe sous Xcode. J'ai placé des envers "tracer" en utilisant ces différentes méthodes pour me dire lesquelles l'introduisent dans le cadre de mon application. De ce qui suit, vous pouvez voir que éditer le "scheme" dans Xcode pour ajouter des arguments fonctionne, comme le fait "putenv". Ce qui n'est pas défini dans la portée: ~/.MACOS / environment.plist, spécifiques à l'application plist, .j'ai trouvé un autre moyen dans Xcode [au moins] pour en définir un mais j'ai oublié ce que j'ai appelé le traceur et je ne peux pas le trouver maintenant; peut-être que c'est sur une autre machine....)

GPU_DUMP_DEVICE_KERNEL is 3

GPU_DUMP_TRK_ENVPLIST is (null)

GPU_DUMP_TRK_APPPLIST is (null)

GPU_DUMP_TRK_DOTPROFILE is (null)

GPU_DUMP_TRK_RUNSCRIPT is (null)

GPU_DUMP_TRK_SCHARGS is 1

GPU_DUMP_TRK_PUTENV is 1

... d'autre part, si je vais dans le Terminal et dire "ensemble", il semble que le seul qu'il obtient est celle de .profil (j'aurais pensé qu'il allait chercher de l'environnement.plist aussi, et je suis sûr qu'une fois que j'ai vu un deuxième traceur envar en Terminal, donc quelque chose est probablement parti wonky depuis. Long de la journée....)

1
répondu Photovore 2012-09-02 21:44:19

etape 1: ouvrez ~/.bash_profile

maintenant un éditeur de texte ouvre:

Step2: le nom de la variable doit être en majuscules. dans cet exemple, la variable est NODE_ENV

Etape 3: export NODE_ENV=development

Enregistrer et fermer.

Redémarrez votre système.

fait.

pour vérifier la variable env: open terminal et type

echo $NODE_ENV 
-3
répondu Navya 2018-01-13 23:12:06