Comment définir des variables d'environnement sur OS X?

72

J'ai toujours du mal à définir les variables d'environnement dans OS X comme JAVA_HOME, M2_HOMEou PATH. Comment les configurer sur OS X Mavericks?

J'ai fait des recherches mais les réponses que j'ai trouvées ne m'ont pas encore beaucoup aidé:

  1. export JAVA_HOME=/... (Mais il semble que les modifications sont temporaires, juste pour une session de terminal.)
  2. setenv JAVA_HOME=/... (Mais commande non trouvée.)
  3. Ouvrez .profileet écrivez les variables à l'intérieur pour rendre les modifications permanentes ( .profilen'existe pas).
  4. Ouvrez .bash_profileet écrivez les variables à l'intérieur pour rendre les modifications permanentes ( .bash_profilen'existe pas).
  5. vi ~/.bash_profile(C'est tout un défi pour quelqu'un qui ne sait pas vi.)
  6. Créer votre propre enrivonment.plistfichier.

Quelqu'un peut-il me guider, s'il vous plaît, à travers les étapes pour que cela fonctionne sur OS X Mavericks, en supposant qu'il n'existe pas de savoir-faire Unix?

akcasoy
la source
1
Unix (et tout autre système d'exploitation) peut être difficile pour les nouveaux utilisateurs, je peux donc comprendre votre frustration. Néanmoins, la question telle qu'elle est écrite est plutôt large et n'apportera pas les réponses que vous recherchez. Pouvez-vous s'il vous plaît le réécrire pour vous concentrer sur le problème que vous rencontrez réellement (comme "Comment définir JAVA_HOME et PATH sur Mavericks"), ce qui vous assurera d'obtenir de bonnes réponses sur lesquelles vous pourrez vous appuyer?
nohillside
Comme je le vois, Stuffe a déjà modifié ma question. Merci Ma question est comme le titre le dit, comment définir JAVA_HOME et PATH sur Mavericks.
akcasoy
@patrix: La prochaine fois, je vous expliquerai mon problème ou ce que je veux demander, et vous écrirez MA QUESTION AVEC VOS MOTS. D'accord? Il semble que vous, les modérateurs, en soyez très satisfaits.
akcasoy

Réponses:

45

J'ai un .profile dans mon répertoire personnel; il contient de nombreuses export …instructions pour les variables d'environnement.

Vous pouvez créer un tel fichier en ouvrant un terminal et en émettant la commande touch .profile Fermer le terminal.

Ensuite, vous devez ouvrir ce fichier dans un éditeur de texte brut (TextWrangler par exemple). Vous pouvez également utiliser nano .profiledans une fenêtre de terminal (le répertoire actuel doit être votre maison), ce qui est beaucoup plus simple que vi. Insérer des lignes telles que export JAVA_HOME=…. Sauvegarder, quitter nanosi vous avez utilisé cela et quitter un terminal en cours d'exécution.

Ouvrez Terminal et lancez la commande envpour voir toutes les variables d'environnement. Vérifiez que ceux que vous avez définis ont la valeur que vous leur avez attribuée. Vous devriez être prêt à partir maintenant. Mais n'oubliez pas que les variables d'environnement définies dans .profilene sont pas transmises aux applications à interface graphique.

Bhas
la source
Merci beaucoup. C'était ce que je cherchais vraiment. J'ai maintenant défini toutes mes variables. Que voulez-vous dire par applications graphiques? Je n'avais besoin que de quelques variables pour java et maven afin de pouvoir utiliser eclipse, les outils à ressort, etc. Eclipse est une application dotée d'une interface utilisateur graphique. Voulez-vous dire cela par interface graphique?
akcasoy
D'accord. J'en ai lu quelques-unes et je pense que vous voulez dire vraiment interface graphique avec une interface graphique. Existe-t-il un moyen de rendre ces variables disponibles partout? Quel est le moyen le plus courant ou où se trouve l'emplacement le plus courant pour les définir?
akcasoy
1. oui c'est ce que je voulais dire par une application graphique. 2. La définition de variables d'environnement pour les applications à interface graphique sous OS X 10.8 semble difficile à quitter. Certaines applications vous permettent de définir des variables d'environnement, qui doivent être transmises à d'autres applications, dans leurs préférences par exemple. Vous pouvez également utiliser la open -a Appnameméthode dans une session Terminal.
Bhas
4
Je ne sais pas pourquoi mais pour moi (OS X Yosemite 10.10.1), cela .profilen’a pas aidé. Je devais mettre les exportdéclarations dans le .bash_profilepour que cela fonctionne. J'espère que cela aidera quelqu'un d'autre s'il rencontre les mêmes problèmes ...
chuky
24

Dans Yosemite, vous devriez mettre à l' export VARIABLE='something'intérieur .bash_profile.

J'ai essayé d'écrire à l' export VARIABLE='something'intérieur .profilesans succès.

Rafael Eyng
la source
En effet. .profile ne fonctionne que lorsque vous l'exécutez manuellement via source .profile Mais après un redémarrage, le fichier .profile n'est pas chargé. Le fichier .bash_profile est.
KC
pas vraiment correct.
Koray Tugay
2
@ KorayTugay Pourriez-vous indiquer ce qui ne va pas, et peut-être un moyen de le réparer?
Rafael Eyng
7

Pour ceux qui n'aiment pas avoir des problèmes avec les fichiers texte et les éditeurs, il existe également un outil graphique sur GitHub .

Mkraemerx
la source
Génial ! J'ai passé toute la journée à résoudre le problème de la variable d'environnement et je n'étais nulle part. L'application que vous avez publiée a résolu tous les tracas de mon environnement
Shajo
5

Pour ajouter un répertoire à un chemin, il existe une meilleure option sous OS X: toutes les entrées du fichier / etc / path sont ajoutées au chemin, avant le démarrage de tout shell.

Editez ce fichier avec:

sudo pico /etc/paths

Pour plus d'informations, voir: https://gist.github.com/Overbryd/1669348

Bjinse
la source
Je vous remercie! pour moi c'est la manière la plus élégante d'inclure une nouvelle voie
Asimov
4

OSX n'a ​​eu qu'un seul changement concernant les variables d'environnement et c'était dans Lion où ~ / .MacOSX / environment.plist a été supprimé. Bien qu'il y ait également eu un changement dans le shell par défaut dans 10.2 ou 10.3 de tsch à bash.

Vous devez définir l’utilisation que vous voulez de la variable d’environnement et de votre environnement.

Vous devez également comprendre les shells et Unix qui, par vos commentaires, n’ont pas été complètement terminés. Il existe plusieurs tutoriels sur nbash.

Quant à vos points

  1. Vous comprenez bien en supposant que vous êtes dans un shell de type sh (par exemple, bash ou zsh)
  2. Ceci concerne les shells C, par exemple tcsh, donc ne fonctionnera pas avec les valeurs par défaut récentes.
  3. Vous devez créer .profile alors ça marche
  4. C'est .bash_profile ou mieux .bashrc et vous devez d'abord créer le fichier
  5. Totalement correct :) Utilisez TextEdit ou nano (ou emacs)
  6. Corrigez jusqu’à OSX 10.7 et effectuez cette opération pour les programmes appelés depuis l’espace de travail, par exemple depuis le Dock ou le Finder (ou ouverts).

Donc 3 ou 4 fonctionnent si vous appelez le programme depuis la ligne de commande (ou depuis un programme démarré dans la ligne de commande mais pas en mode ouvert)

En ce qui concerne les programmes de l'interface graphique, voir cette question

Quant à Internet, il est rempli d'ordures. Vous devez avoir suffisamment de connaissances en arrière-plan pour comprendre un article car, comme vous l'avez découvert, beaucoup supposent des choses ou sont incorrects. Les sites StackExhnage devraient être meilleurs car vous pouvez voir si une réponse a été convenue à partir du nombre de votes.

utilisateur151019
la source
Je n'ai toujours aucun résultat. La question liée ne m'apporte pas à la solution. J'ai un Mac depuis 4 ans, mais je n'ai toujours pas (pas besoin) d'expérience d'UNIX. Je pense, quand la réponse de "Pourquoi est-ce si putain si difficile?" est "plist a été supprimé, changement dans 10.2 ou 10.3, shell de type sh, jusqu'à 10.7 etc." la réponse se contredit avec elle-même.
akcasoy
Cela pourrait se faire très facilement comme dans les fenêtres. Quoi qu'il en soit .. ce que j'attendais vraiment était qc. comme ceci: 1- open home dir 2- open terminal 3- write "xxx" 4-click save etc. l'Internet.
akcasoy
Si vous avez besoin de variables d’environnement, vous devez comprendre ce qu’elles font et cela nécessite un arrière-plan. De plus, comme vous n'avez pas précisé comment vous utilisiez les variables, je dois donner toutes les différences possibles. Remarque concernant le paramètre Java JAVA_HOME n’est pas nécessairement la meilleure solution (voir les questions sur Java)
user151019 Le
Ma question concernait le paramétrage des variables. Ni sur ce qu'ils font, ni sur toute autre chose qui nécessite plus d'informations. Vous pouvez évidemment les définir même sans arrière-plan. Merci pour votre réponse cependant. Mais comme je l'ai déjà écrit, une simple proposition de solution suffisait, ce que j'ai déjà grâce à Bhas.
akcasoy
Vous ne devriez vraiment pas définir de variables sans arrière-plan, vous devez savoir ce qu'elles font
user151019
4

Si vous utilisez zshcomme moi, vous devez modifier ~/.zshrc.

shellbye
la source
1
Ou.zprofile
timetofly