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

532

Quand quelqu'un dit "éditez votre fichier .plist" ou "votre .profile" ou ".bash_profile" etc, cela me confond tout simplement. Je n'ai aucune idée où se trouvent ces fichiers, comment les créer si je dois le faire, etc., et aussi pourquoi il semble y en avoir tellement différents (pourquoi? Font-ils des choses différentes?)

Alors, quelqu'un pourrait-il expliquer très patiemment à un ancien utilisateur de Windows (souhaitant désespérément se familiariser avec le monde OS X agréable mais initialement un peu déroutant) comment procéder é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.

Veuillez noter que j'ai aussi Lion, car la plupart des réponses que vous obtenez sur Google semblent obsolètes pour Lion ...

Notez également que je n'ai pratiquement aucune expérience d'utilisation du terminal. Je suis prêt à apprendre, mais veuillez expliquer pour un novice ...

Anders
la source
Aucune réponse ne fonctionnera si vous essayez de la lire à partir d'une application comme le printemps.
Mehraj Malik

Réponses:

403

Tout d'abord, une chose à reconnaître à propos d'OS X est qu'il est construit sur Unix. C'est là que le fichier .bash_profile entre en jeu. Lorsque vous démarrez l'application Terminal sous OS X, vous obtenez un shell bash par défaut. Le shell bash provient d'Unix et lorsqu'il se charge, il exécute le script .bash_profile. Vous pouvez modifier ce script pour que votre utilisateur modifie vos paramètres. Ce fichier se trouve à:

~/.bash_profile

Mise à jour pour Mavericks

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

Lion et Lion de montagne uniquement

Les applications fenêtrées OS X reçoivent des variables d'environnement à partir de votre fichier environment.plist. C'est probablement ce que vous entendez par le fichier ".plist". Ce fichier se trouve à:

~/.MacOSX/environment.plist

Si vous modifiez votre fichier environment.plist, les applications Windows OS X, y compris l'application Terminal, verront ces variables d'environnement définies. Toute variable d'environnement que vous définissez dans votre .bash_profile n'affectera que vos shells bash.

En général, je ne définis que des variables dans mon fichier .bash_profile et ne modifie pas le fichier .plist (ou le fichier launchd sur Mavericks). La plupart des applications fenêtrées OS X ne nécessitent aucun environnement personnalisé. Ce n'est que lorsqu'une application a réellement besoin d'une variable d'environnement spécifique que je change le fichier environment.plist (ou launchd sur Mavericks).

Il semble que vous souhaitiez modifier le fichier environment.plist plutôt que le fichier .bash_profile.

Une dernière chose, si vous recherchez ces fichiers, je pense que vous ne les trouverez pas. Si je me souviens bien, ils n'étaient pas sur ma première installation de Lion.

Modifier: voici quelques instructions pour créer un fichier plist.

  1. Ouvrir Xcode
  2. Sélectionnez Fichier -> Nouveau -> Nouveau fichier ...
  3. Sous Mac OS X, sélectionnez Ressources
  4. Choisissez un fichier plist
  5. Suivez le reste des invites

Pour modifier le fichier, vous pouvez cliquer tout en maintenant la touche Ctrl enfoncée pour obtenir un menu et sélectionner Ajouter une ligne. Vous pouvez ensuite ajouter une paire de valeurs clés. Pour les variables d'environnement, la clé est le nom de la variable d'environnement et la valeur est la valeur réelle de cette variable d'environnement.

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

David V
la source
OK merci. Je pense avoir compris que le tilde signifie mon soi-disant dossier de départ, n'est-ce pas (par exemple / Users / Anders dans mon cas)? Donc, s'ils n'existent pas, je devrais créer un nouveau fichier texte vide, avec les noms que vous avez mentionnés (serai-je autorisé à créer un fichier commençant par un point?)? Et puis ajouter quoi dans ces fichiers pour définir une variable d'environnement? Par exemple, je dois ajouter une variable AHF_OPT qui devrait pointer vers un dossier requis par un script ant, comment puis-je ajouter cela dans ces deux fichiers?
Anders
1
Deux choses à essayer: tout d'abord, votre chaîne collée a un point-virgule incorrect après ".dtd>" C'est peut-être une erreur de copier-coller, mais j'ai dû la supprimer pour que Xcode lise le fichier. Deuxièmement, vous devrez peut-être vous déconnecter et vous reconnecter pour que les effets se produisent.
David V
7
Il est également utile de le savoir ~/.bashrc. ~/.bashrcLe fichier s'exécute à chaque fois que vous ouvrez un nouveau shell bash sans connexion tel que xterm / aterm, et ~/.bash_profilene s'exécute qu'avec des shells de connexion, c'est-à-dire lorsque vous vous connectez pour la première fois au système.
DanSkeel
1
J'ai trouvé une bonne explication claire sur l'ajout de environment.plist ici developer.apple.com/library/mac/#qa/qa1067/_index.html .
Et enfin
1
Excellente réponse, à l'exception de la phrase maladroite "Application Windows OS X". C'est encore pire que de se référer à X11 comme "X Windows". Mieux vaut l'appeler Aqua ou simplement "applications .app".
SigmaX
222

Vos .profileou .bash_profilesont simplement des fichiers présents dans votre dossier "home". Si vous ouvrez une fenêtre du Finder et cliquez sur le nom de votre compte dans le volet Favoris, vous ne les verrez pas. Si vous ouvrez une fenêtre de terminal et tapez lspour répertorier les fichiers, vous ne les verrez toujours pas. Cependant, vous pouvez les trouver en utilisant ls -adans le terminal. Ou si vous ouvrez votre éditeur de texte préféré (dites TextEdit car il est livré avec OS X) et faites Fichier-> Ouvrir, puis appuyez sur Command+ Shift+ .et cliquez sur le nom de votre compte (dossier personnel), vous les verrez également. Si vous ne les voyez pas, vous pouvez en créer un dans votre éditeur de texte préféré.

Maintenant, l'ajout de variables d'environnement est relativement simple et remarquablement similaire aux fenêtres conceptuellement. Dans votre .profilejuste 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 d'inclure le PATH par défaut du système qui a déjà été défini pour vous:

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

Voici maintenant la partie originale, vous pouvez soit ouvrir une nouvelle fenêtre de terminal pour que les nouvelles variables prennent effet, soit vous devrez taper .profileou .bash_profilerecharger le fichier et appliquer le contenu à l'environnement de votre terminal actuel.

Vous pouvez vérifier que vos modifications ont pris effet à l'aide de la commande "set" de votre terminal. Tapez simplement set(ou set | moresi 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, cela n'est normalement pas nécessaire et j'aimerais en savoir plus sur ce que vous essayez spécifiquement de faire pour mieux vous donner une réponse.

tokkov
la source
2
Merci, je n'ai pas bien compris la dernière partie cependant, je dois soit ouvrir une fenêtre de terminal pour les avoir définies, soit taper .profile? Mais ne devrais-je pas ouvrir une fenêtre de terminal pour taper .profile? Et s'ils sont automatiquement définis simplement en ouvrant une fenêtre de terminal, alors pourquoi dois-je taper cela ...? Et une fois que j'en aurai ouvert un, sera-t-il réglé définitivement? Je vous ai probablement mal compris, car même ma question n'a pas de sens pour moi ...
Anders
4
Si une fenêtre de terminal est ouverte avant de modifier votre profil, ces modifications ne seront pas reflétées dans l'environnement du terminal existant. Votre solution rapide consiste à simplement ouvrir une nouvelle fenêtre de terminal. C'est tout. Chaque nouvelle fenêtre contiendra tout dans le .profile. Toujours. La façon de réparer les anciennes fenêtres déjà ouvertes est de taper ". .Profile" 2 points, 1 espace entre eux. La commande "set" consiste à définir les variables d'environnement qui meurent à la fin de la session dans laquelle vous les avez définies. L'utilisation de "set" sans arguments répertorie les variables actuellement définies.
tokkov
1
Ahhh, je vois la confusion que j'ai créée. Si aucune fenêtre de terminal n'était ouverte, chaque nouvelle fenêtre chargera le .profile à son ouverture et vous n'aurez rien à faire. Si, d'autre part, vous aviez modifié le .profile dans votre fenêtre de terminal ou si les fenêtres de terminal étaient ouvertes précédemment et vouliez les modifications, vous devez simplement taper . .profilepour les charger.
tokkov
2
Je ne peux pas le faire fonctionner. J'ai ajouté un fichier .bash_profile sous / Users / Anders, avec la ligne d'exportation AXF_DIR = / Applications / Antenna / AHFormatterV53, mais le processus ant ne trouve toujours pas de variable AXF_DIR ... Aussi, j'ai essayé la commande set dans Terminal, et a obtenu beaucoup d'informations, mais rien sur cette variable. Notez que j'ai également redémarré le système juste pour être sûr, et j'ai également commencé une nouvelle fenêtre de terminal ...
Anders
2
Essayez de le nommer juste .profile. Je viens de jeter un œil à une machine que j'ai récemment achetée et ils semblent utiliser .profileces jours-ci et non.bash_profile
tokkov
77

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

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

  1. Analyse du contenu du fichier /private/etc/paths, un chemin par ligne
  2. Analyser le contenu du dossier /private/etc/paths.d. Chaque fichier de ce dossier peut contenir plusieurs chemins, un chemin par ligne. L'ordre de chargement est d'abord déterminé par le nom du fichier, puis par l'ordre des lignes dans le fichier.
  3. Une setenv PATHinstruction in /private/etc/launchd.conf, qui ajoutera 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 PATH 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 applications, ils sont donc vraiment globaux - la déconnexion et la connexion ne réinitialiseront pas ces chemins - ils sont conçus pour le système et sont créés avant que tout utilisateur ait la possibilité de se connecter, les modifications de ces derniers nécessitent donc un redémarrage du système pour prendre effet.

BTW, une installation propre d'OS 10.7.x Lion n'en a pas environment.plistque je puisse trouver, donc cela peut fonctionner mais peut également être déconseillé.

Jonphipps
la source
1
Oui, merci beaucoup! C'est un peu plus compliqué qu'un simple .profile.
Felixyz
2
Si vous utilisez la méthode paths.d et que vous avez un chemin qui contient des dossiers contenant des espaces, ne les laissez pas échappés. si vous essayez de leur échapper (ce qui est une pratique courante, je pense?), cela ne fonctionne pas (du moins pour moi). j'ai lu ceci ici: sweeting.org/mark/blog/2008/05/26/… (recherchez les «espaces»). J'espère que cela aide quelqu'un d'autre!
Michael Trouw
1
@MichaelTrouw Votre commentaire m'a aidé d'une tonne! J'ajoutais des évasions pour les espaces, mais ce n'était pas obligatoire! Je suis sur Mac OS 10.9.2
kpsfoo
@jon, en quoi paths.ddiffère- pathst-il? De même, le premier l'emporte-t-il sur le second?
Pacerier
53
echo $PATH

il imprime la valeur actuelle du chemin

Ensuite, faites vim ~/.bash_profileet écrivez

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

ici vous ajoutez à l'ancien chemin, donc conserve l'ancien chemin et y ajoute votre nouveau chemin

alors fais

source ~/.bash_profile

cela l'exécutera et ajoutera le chemin

puis vérifiez à nouveau avec

echo $PATH
Learner_19
la source
2
la commande "vim" devrait être vim ~ / .bash_profile J'ai essayé de modifier le message mais SO me dit que les modifications doivent être de 6 caractères: /
Jason Polites
31

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, ça se mettait gradleau travail (pour Android Studio).

Btw, Ces étapes concernent OSX (Mountain Lion 10.8.5)

  • Ouvrez Terminal.
  • Exécutez la commande suivante:

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

    nano

  • Allez au bas du fichier et entrez le chemin que vous souhaitez ajouter.
  • Appuyez sur control-x pour quitter.
  • Entrez «Y» pour enregistrer le tampon modifié.
  • Ouvrez une nouvelle fenêtre de terminal puis tapez:

    echo $PATH

Vous devriez voir le nouveau chemin ajouté à la fin du CHEMIN

J'ai obtenu 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 cela peut aider quelqu'un d'autre

filaire00
la source
Après 3 heures d'essayer de comprendre et de faire de l'exportation quel que soit le travail, j'ai essayé cela et cela a fonctionné. Il manque une étape. Je vais l'ajouter.
1,21 gigawatts
@ 1.21gigawatts ahh super, heureux que cela vous ait aidé, merci pour les modifications
filaire00
1
Mise à jour: Cela fonctionne mais devra redémarrer le système après l'édition.
Anant Simran Singh
solution parfaite!
Jayant Varshney
Parfait pour MacOS 10.12.X
Camille G.
23

Explication simplifiée

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

  • ~ / .bashrc
  • ~ / .bash_profile
  • ~ / .profile

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

Ce que cela veut dire

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

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

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

vol7ron
la source
Pourquoi l'ont-ils retiré entre-temps?
Pacerier
@Pacerier Je ne sais pas s'ils l'ont supprimé, mais sans personnalisation, ces fichiers ne sont pas nécessaires. Le problème est que pour toute personne nouvelle dans le terminal / shell, OSX ou BSD, ces fichiers ne sont pas évidents et donc plus difficiles à connaître.
vol7ron
Alors, avec quoi l'ont-ils remplacé?
Pacerier
Ils sont facultatifs, ils ne l'ont donc pas remplacé par quoi que ce soit; c'est un fichier RC
vol7ron
18

Ce qui a fonctionné pour moi, c'est de créer un .launchd.confavec les variables dont j'avais besoin:

setenv FOO barbaz

Ce fichier est lu par launchd lors de la connexion. Vous pouvez ajouter une variable «à la volée» au launchd en cours d'exécution en utilisant:

launchctl setenv FOO barbaz`

En fait, .launchd.condcontient simplement les commandes launchctl.

Les variables définies de cette manière semblent être présentes correctement dans les applications GUI.

Si vous essayez de définir vos variables LANG ou LC_ de cette manière et que vous utilisez iTerm2, assurez-vous de désactiver le paramètre `` Définir automatiquement les variables locales '' sous l'onglet Terminal du profil que vous utilisez. Cela semble remplacer les variables d'environnement de launchd, et dans mon cas, la définition d'un LC_CTYPE cassé provoquait des problèmes sur les serveurs distants (qui ont passé la variable).

(L'environnement.plist semble toujours fonctionner sur mon Lion. Vous pouvez utiliser le volet de préférences de RCenvironment pour conserver le fichier au lieu de le modifier manuellement ou de Xcode requis. Il semble toujours fonctionner sur Lion, bien que sa dernière mise à jour soit de Snow Leopard. en fait ma méthode préférée.)

Gilimanjaro
la source
De loin la réponse la plus simple. Notez que vous devez fermer complètement l'application de terminal et la rouvrir pour que toutes les modifications prennent effet - pas simplement fermer une seule fenêtre de terminal.
Timmmm
1
Cette réponse est beaucoup trop dépouillée pour être utile à OP. Créez comment? Créez où?
HenryRootTwo
15

Configurez votre variable d'environnement PATH sous Mac OS

Ouvrez le programme Terminal (il se trouve dans votre dossier Applications / Utilites par défaut). Exécutez la commande suivante

touch ~/.bash_profile; open ~/.bash_profile

Cela 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 répertoire d'outils et de plateforme SDK Android. Dans mon exemple, j'utiliserai "/ Development / android-sdk-macosx" comme répertoire d'installation du SDK. Ajoutez 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écutez votre .bash_profile pour mettre à jour votre PATH.

source ~/.bash_profile

Maintenant, à chaque fois que vous ouvrez le programme Terminal, votre PATH inclura le SDK Android.

Charaf JRA
la source
Merci. Je ne sais pas pourquoi, mais seule cette solution a fonctionné pour moi, pas celles ci-dessus.
kroky
J'ai ajouté une variable d'environnement comme vous l'avez dit mais je ne peux pas l'utiliser dans xcode, avez-vous une idée? J'ai besoin de l'utiliser dans le chemin de recherche d'en-tête. Merci d'avance.
Yucel Bayram
11

Ajout de variables de chemin à OS X Lion

Cela a été assez simple et a fonctionné 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

Yaw Joseph Etse
la source
1
Il convient de noter que vous devrez l'exécuter à partir de la racine de votre répertoire personnel. Assurez-vous que vous en êtes là en émettant cdsans argument ou cd ~/.
ephsmith
3
Il n'est pas non plus nécessaire de redémarrer le shell. Utilisez source .bash_profile.
ephsmith
J'aime cette méthode car elle est courte. Mais cela ne semble pas fonctionner. Je l'ai fait. echo "export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin/mysql" >> .bash_profileLa seule fois où je peux le faire, mysql -u root -pc'est si je suis déjà en cours d'exécution à la racine. Alors que je peux utiliser Applications/XAMPP/xamppfiles/bin/mysql -u root -pn'importe où. J'ai essayé les deux approches de redémarrage mentionnées: Yaw's et @ ephsmith's.
kasavbere
De plus, si je fais ech $ PATH en tant que root (ie sudo su) j'obtiens /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/XAMPP/xamppfiles/bin. Quand je ne suis pas root, je reçois/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
kasavbere
La $PATHvariable est spécifique à l'utilisateur (root est un utilisateur).
ephsmith
7

Terminal ouvert:

vi ~/.bash_profile

Appliquer la modification au système (pas besoin de redémarrer l'ordinateur):

source ~/.bash_profile

(Fonctionne également avec macOS Sierra 10.12.1)

Do Nhu Vy
la source
5

J'ai eu un problème avec Eclipse (commencé en tant qu'interface graphique, pas à partir d'un script) sur Maverics, car il ne prenait pas de chemin personnalisé. J'ai essayé toutes les méthodes mentionnées ci-dessus en vain. Enfin, j'ai trouvé la réponse de travail la plus simple basée sur des indices d' ici :

  1. Accédez au dossier /Applications/eclipse/Eclipse.app/Contents

  2. Editez le fichier Info.plist avec l'éditeur de texte (ou XCode), ajoutez le dictionnaire LSEnvironment pour la variable d'environnement avec le chemin complet . Notez qu'il inclut également / 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. Recharger les paramètres de l'application avec

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

JaakL
la source
5

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

  1. Tout d'abord après l'installation de JDK, assurez-vous qu'il est installé. entrez la description de l'image ici
  2. Parfois, macOS ou Linux configure automatiquement une variable d'environnement pour vous contrairement à Windows. Mais ce n'est pas toujours le cas. Alors vérifions-le. entrez la description de l'image ici La ligne immédiatement après echo $ JAVA_HOME serait vide si la variable d'environnement n'est pas définie. Il doit être vide dans votre étui.

  3. Maintenant, nous devons vérifier si nous avons un fichier bash_profile. entrez la description de l'image ici Vous avez vu que dans mon cas, nous avons déjà bash_profile. Sinon, nous devons créer un fichier bash_profile.

  4. Créez un fichier bash_profile. entrez la description de l'image ici

  5. Vérifiez à nouveau pour vous assurer que le fichier bash_profile est là. entrez la description de l'image ici

  6. Ouvrons maintenant le fichier bash_profile. macOS l'ouvre en utilisant son programme TextEdit par défaut. entrez la description de l'image ici

  7. Il s'agit du fichier dans lequel les variables d'environnement sont conservées. Si vous avez ouvert un nouveau fichier bash_profile, il doit être vide. Dans mon cas, il était déjà défini pour le langage de programmation python et la distribution Anaconda. Maintenant, j'ai besoin d'ajouter une variable d'environnement pour Java qui vient d'ajouter la première ligne. VOUS DEVEZ TAPER la première ligne VERBATIM. JUSTE la première ligne. Enregistrez et fermez TextEdit. Fermez ensuite le terminal. entrez la description de l'image ici

  8. Ouvrez à nouveau le terminal. Vérifions si la variable d'environnement est configurée. entrez la description de l'image ici

Sumit Pokhrel
la source
4

J'ai pris la route idiote. Ajouté à la fin de / etc / profile

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

créé un dossier / etc / environnements créer un fichier appelé "oracle" ou "n'importe quoi" et y ajouter les éléments que je devais définir globalement.

/ etc $ cat /etc/environments.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
Rob à Katy
la source
1

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

En raison de mes propres explorations, je sais maintenant comment définir des variables d'environnement de 7 sur 8 façons différentes. J'essayais de faire passer un envar à une application que je développe sous Xcode. J'ai défini des envars "traceurs" à l'aide de ces différentes méthodes pour me dire lesquelles entrer dans le champ d'application de mon application. Ci-dessous, vous pouvez voir que l'édition du "schéma" dans Xcode pour ajouter des arguments fonctionne, tout comme "putenv". Ce qui ne l'a pas défini dans cette étendue: ~ / .MACOS / environment.plist, plist spécifique à l'application, .profile et l'ajout d'une phase de construction pour exécuter un script personnalisé (j'ai trouvé une autre façon dans Xcode [au moins] pour définir un mais j'ai oublié ce que j'ai appelé le traceur et je ne le trouve pas maintenant; c'est peut-être sur une autre machine ....)

GPU_DUMP_DEVICE_KERNEL a 3 ans

GPU_DUMP_TRK_ENVPLIST est (null)

GPU_DUMP_TRK_APPPLIST est (null)

GPU_DUMP_TRK_DOTPROFILE est (null)

GPU_DUMP_TRK_RUNSCRIPT est (null)

GPU_DUMP_TRK_SCHARGS vaut 1

GPU_DUMP_TRK_PUTENV vaut 1

... d'autre part, si je vais dans Terminal et dise "set", il semble que le seul qu'il obtienne soit celui de .profile (j'aurais pensé qu'il ramasserait environment.plist aussi, et je suis bien sûr, une fois que j'ai vu un deuxième envar traceur dans Terminal, donc quelque chose est probablement devenu chancelant depuis. Longue journée ....)

Photovore
la source
0

Étape 1: ouvrir ~/.bash_profile

Maintenant, un éditeur de texte s'ouvre:

Étape 2: le nom de la variable doit être en majuscules. dans cet exemple, la variable estNODE_ENV

Étape 3: export NODE_ENV=development

Enregistrez-le et fermez.

Redémarrez votre système.

Terminé.

Pour vérifier la variable env: ouvrez le terminal et tapez

echo $NODE_ENV 
Navya
la source
0

Il est recommandé de vérifier le shell du terminal par défaut avant de définir les variables d'environnement, via les commandes suivantes:

$ echo $SHELL
/bin/zsh

Si votre terminal par défaut est / bin / zsh (Z Shell) comme dans mon cas (personnellement, préférez Z Shell), vous devez définir ces variables d'environnement dans le fichier ~ / .zshenv avec le contenu suivant (dans cet exemple, définir la variable d'environnement JAVA_HOME , mais il en va de même pour les autres):

export JAVA_HOME="$(/usr/libexec/java_home)"

De même, pour tout autre type de terminal non mentionné ci-dessus, vous devez définir la variable d'environnement dans son fichier env de terminal respectif.

Jerry Chong
la source