12 votos

MacOS Big Sur - ¿configurar env vars para las aplicaciones GUI?

He seguido muchos métodos en Ask Different en cuanto a cómo cambiar el $PATH variable de entorno para las aplicaciones GUI. Algunos de los métodos pueden funcionar para MacOS pre-Catalina, otros pueden funcionar para Catalina, pero ninguno de ellos me funciona en MacOS Big Sur.

Esta es la historia: he instalado go a /usr/local/bin/go con Homebrew y VS Code no lo encuentra -

enter image description here

Métodos que he intentado para resolver este problema:

  • sudo launchctl config user path "/usr/local/bin:$PATH" y reiniciar.
  • Editar /etc/paths para que incluya /usr/local/bin y reiniciar.
  • Otros trucos de launchctl.

Entonces, ¿cuál es la forma recomendada de establecer env vars para aplicaciones GUI en MacOS Big Sur? Se agradece cualquier ayuda.

8voto

Larry Gritz Puntos 4659

Lo siguiente me ha funcionado para conseguir que una variable de entorno sea accesible desde una aplicación GUI (SwiftBar).

He creado un archivo plist (por ejemplo com.example.set-env-vars.plist ) en ~/Library/LaunchAgents/ con el siguiente contenido:

<?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>

Luego reinicié para que surtiera efecto. Sospecho que cerrar la sesión y volver a iniciarla puede ser adecuado, ya que las cosas en ~/Library/LaunchAgents/ debe aplicarse al iniciar la sesión.

Si alguien puede mejorar esta respuesta, me encantaría saber por qué esto funciona pero corriendo launchctl setenv MY_VAR my_value desde un terminal no lo hace.

Intercambiar MY_VAR y my_value según sea necesario. Tenga en cuenta que no estoy seguro de que esto le permita hacer algo como launchctl setenv PATH "/usr/local/bin:$PATH" , ya que no estoy seguro de si $PATH existiría o se expandiría adecuadamente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X