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


Answers

Votre ".profile" ou ".bash_profile" sont 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 Terminal et tapez "ls" pour lister les fichiers ... vous ne les verrez toujours pas. Mais vous pouvez les trouver en utilisant "ls -a" dans le terminal. Ou si vous ouvrez votre éditeur de texte favori (dites TextEdit car il est livré avec OS X) et faites Fichier-> Ouvrir et appuyez sur Commande + Maj +. et cliquez sur le nom de votre compte (dossier de départ), vous les verrez également. Si vous ne les voyez pas, vous pouvez simplement en 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 fichier .profile, ajoutez juste 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", veillez à 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

Maintenant, voici la partie excentrique, vous pouvez soit ouvrir une nouvelle fenêtre Terminal pour que les nouvelles variables prennent effet, ou vous devrez taper ".profile" ou ".bash_profile" pour recharger le fichier et avoir le contenu appliqué à l'environnement de votre Terminal actuel.

Vous pouvez vérifier que vos modifications ont pris effet à l'aide de la commande "set" dans votre Terminal. Tapez simplement "set" (ou "set | more" si vous préférez une liste paginée) et soyez sûr 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 j'aimerais en savoir plus sur ce que vous essayez de faire pour mieux vous donner une réponse.

Question

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

Donc, quelqu'un pourrait-il expliquer très patiemment à un utilisateur Windows précédent (voulant désespérément se familiariser avec le monde OS X agréable au début quelque peu confus) comment faire cela é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 probablement aussi d'autres besoins.

S'il vous plaît noter que j'ai Lion aussi, car la plupart des réponses que vous obtenez Googling semblent être obsolètes pour Lion ...

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




Terminal ouvert:

vi ~/.bash_profile

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

source ~/.bash_profile

(Fonctionne également avec macOS Sierra 10.12.1)




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 / environments crée un fichier appelé "oracle" ou "quelquechose" et y ajoute les éléments dont j'avais besoin.

/ 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



echo $PATH

il imprime la valeur du chemin actuel

Ensuite, faites vim ~/.bash_profile et écrivez

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

ici, vous êtes en train de rejoindre le vieux chemin, ainsi préserve l'ancien chemin et y ajoute votre nouveau chemin

alors fais

source ~/.bash_profile

cela va l'exécuter et ajouter le chemin

puis vérifier à nouveau avec

echo $PATH



Configurez votre variable d'environnement PATH sur Mac OS

Ouvrez le programme Terminal (il se trouve par défaut dans votre dossier Applications / Utilites). 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 au répertoire de votre plate-forme SDK Android: outils et outils. Dans mon exemple, j'utiliserai "/ Development / android-sdk-macosx" comme répertoire dans lequel le SDK est installé. 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, PATH incluera le SDK Android.




Plus de détails, ce qui peut être utile à quelqu'un:

Grâce à mes propres explorations, je sais maintenant comment définir des variables d'environnement de 7 façons différentes. J'essayais de faire passer un envar à une application que je développe sous Xcode. J'ai mis en place des envois "traceurs" en utilisant ces différentes méthodes pour me dire lesquels entrent dans le cadre de mon application. De ce qui suit, vous pouvez voir que modifier le "schéma" dans Xcode pour ajouter des arguments fonctionne, tout comme "putenv". Ce qui ne l'a pas mis dans cette portée: ~ / .MACOS / environment.plist, plist spécifique à l'application, .profile, et en ajoutant une phase de construction pour exécuter un script personnalisé (j'ai trouvé un autre moyen dans Xcode [au moins] de définir un mais j'ai oublié ce que j'ai appelé le traceur et je n'arrive pas à le trouver maintenant, peut-être que c'est sur une autre machine ....)

GPU_DUMP_DEVICE_KERNEL est 3

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

GPU_DUMP_TRK_PUTENV est 1

... d'un autre coté, si je vais dans Terminal et que je dis "set", il semble que le seul qui soit obtenu soit celui de .profile (j'aurais pensé que ça ramasserait environment.plist aussi, et je suis Bien sûr, une fois j'ai vu un second tracer envar dans Terminal, donc quelque chose est probablement devenu bancal depuis lors.) Longue journée ....)




Explication simplifiée

Ce post / question est assez ancien, je vais donc répondre à une version simplifiée pour les utilisateurs d'OS X Lion. Par défaut, OSX Lion n'a 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. [de w / dans le type emacs:] source ~/.bashrc
  3. [de w / dans le type emacs:] Ctrl + x Ctrl + s (pour enregistrer le fichier)
  4. [de w / dans le type emacs:] Ctrl + x Ctrl + c (pour fermer emacs)
  5. %> emacs .bashrc
  6. [à partir de w / dans emacs tapez / collez toutes vos commandes bash, enregistrez et quittez]

La prochaine fois que vous quittez et rechargez le terminal, il devrait charger toutes vos préférences de 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 une source ~/.bash_aliases et mettre toutes vos commandes d'alias dans ~ / .bash_aliases.