12 votes

MacOS Big Sur - définir les variables d'environnement pour les applications GUI ?

J'ai suivi de nombreuses méthodes sur Ask Different pour savoir comment changer la $PATH variable environnementale pour les applications GUI. Certaines de ces méthodes peuvent fonctionner pour MacOS pré-Catalina, d'autres pour Catalina, mais aucune ne fonctionne pour moi sur MacOS Big Sur.

Alors voici l'histoire - j'ai installé go a /usr/local/bin/go avec Homebrew et le code VS ne le trouve pas.

enter image description here

Méthodes J'ai essayé de résoudre ce problème :

  • sudo launchctl config user path "/usr/local/bin:$PATH" et redémarrer.
  • Modifier /etc/paths de manière à ce qu'il comprenne /usr/local/bin et redémarrer.
  • Autres astuces de launchctl.

Quelle est la méthode recommandée pour définir les variables d'environnement pour les applications GUI sous MacOS Big Sur ? Toute aide est la bienvenue.

1 votes

Pouvez-vous définir le PATH (ou au moins l'emplacement du fichier go ) dans VS Code directement ?

1 votes

@nohillside Oui, je pense que je peux définir le chemin du binaire go dans les paramètres de l'extension go, mais le même problème existe pour R et d'autres extensions dans VS Code - il doit y avoir une meilleure façon de le faire.

0 votes

J'ai un problème similaire en essayant d'utiliser SwiftBar. En lançant un plugin Python, les variables d'environnement définies dans bash/zsh/fish ne sont pas disponibles, et launchctl setenv KEY value ne fonctionne pas sur Big Sur.

8voto

Larry Gritz Points 4659

Ce qui suit a fonctionné pour moi afin qu'une variable d'environnement soit accessible à partir d'une application GUI (SwiftBar).

J'ai créé un fichier plist (ex ; com.example.set-env-vars.plist ) en ~/Library/LaunchAgents/ avec le contenu suivant :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>setenv.MY_VARS</string>
  <key>ProgramArguments</key>
  <array>
    <string>sh</string>
    <string>-c</string>
    <string>launchctl setenv MY_VAR my_value</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
</dict>
</plist>

Puis j'ai redémarré pour que ça prenne effet. Je pense que se déconnecter et se reconnecter peut être suffisant, puisque les choses dans ~/Library/LaunchAgents/ doit être appliquée à la connexion.

Si quelqu'un peut améliorer cette réponse, je serais ravi de savoir pourquoi cela fonctionne mais en courant. launchctl setenv MY_VAR my_value à partir d'un terminal ne le fait pas.

Remplacer MY_VAR y my_value au besoin. Remarque : je ne suis pas sûr que cela vous permette de faire quelque chose comme launchctl setenv PATH "/usr/local/bin:$PATH" car je ne suis pas sûr que $PATH existerait ou se développerait correctement.

0 votes

Pour ce que ça vaut, la déconnexion n'a pas suffi pour moi, la variable n'est apparue qu'après le redémarrage.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X