macos - the - system path mac os x
Establecer variables de entorno en Mac OS X Lion (15)
Añadiendo variables de ruta a OS X Lion
Esto fue bastante sencillo y funcionó para mí, en la 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
Una respuesta similar fue aquí: http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516
Cuando alguien dice "edita tu archivo .plist" o "tu .profile" o ".bash_profile", etc., esto me confunde. No tengo idea de dónde están estos archivos, cómo crearlos si tengo que hacer eso, etc., y también por qué parece haber tantos diferentes (¿por qué? ¿Hacen cosas diferentes?)
Entonces, ¿podría alguien explicar muy pacientemente a un usuario anterior de Windows (queriendo desesperadamente familiarizarse con el agradable mundo de OS X, inicialmente algo confuso) cómo hacer esto paso a paso?
Necesito que las variables se configuren tanto para aplicaciones GUI como para aplicaciones de línea de comandos, y en este momento es para un script ant que necesita las variables, pero probablemente también habrá otras necesidades.
Ten en cuenta que también tengo Lion, ya que muchas de las respuestas que obtienes en Google parecen estar desactualizadas para Lion ...
También tenga en cuenta que prácticamente no tengo experiencia con el Terminal. Estoy dispuesto a aprender, pero por favor explique para un principiante ...
Configure su variable de entorno PATH en Mac OS
Abra el programa Terminal (esto está en su carpeta de Aplicaciones / Utilidades por defecto). Ejecuta el siguiente comando
touch ~/.bash_profile; open ~/.bash_profile
Esto abrirá el archivo en su editor de texto predeterminado.
Para ANDROID SDK como ejemplo:
Debe agregar la ruta a su directorio de herramientas y herramientas del SDK de Android. En mi ejemplo usaré "/ Development / android-sdk-macosx" como el directorio en el que está instalado el SDK. Agregue la siguiente línea:
export PATH=${PATH}:/Development/android-sdk-macosx/platform-tools:/Development/android-sdk-macosx/tools
Guarde el archivo y salga del editor de texto. Ejecute su .bash_profile para actualizar su PATH.
source ~/.bash_profile
Ahora, cada vez que abra el programa Terminal, PATH incluirá el SDK de Android.
Explicación simplificada
Esta publicación / pregunta es un poco antigua, así que responderé una versión simplificada para usuarios de OS X Lion. Por defecto, OSX Lion no tiene ninguno de los siguientes archivos:
- ~ / .bashrc
- ~ / .bash_profile
- ~ / .profile
A lo sumo, si has hecho algo en la terminal, puedes ver ~ / .bash_history
Lo que significa
Debe crear el archivo para configurar sus comandos de bash predeterminados (comúnmente en ~ / .bashrc). Para hacer esto, use cualquier tipo de editor, aunque es más simple hacerlo dentro del terminal:
- %> emacs .profile
- [de w / in emacs type:]
source ~/.bashrc
- [de w / in emacs type:]
Ctrl + x Ctrl + s
(para guardar el archivo) - [de w / in emacs type:]
Ctrl + x Ctrl + c
(para cerrar emacs) - %> emacs .bashrc
- [de w / in emacs escribe / pega todos tus comandos de bash, guarda y sale]
La próxima vez que salga y vuelva a cargar el terminal, debería cargar todas sus preferencias de bash. Para una buena medida, generalmente es una buena idea separar sus comandos en nombres de archivos útiles. Por ejemplo, desde dentro de ~ / .bashrc, deberías tener una source ~/.bash_aliases
y poner todos tus comandos de alias en ~ / .bash_aliases.
Aquí hay un poco más de información específicamente relacionada con la variable PATH en Lion OS 10.7.x:
Si necesita configurar el PATH globalmente, el sistema lo crea en el siguiente orden:
- Analizar el contenido del archivo
/private/etc/paths
, una ruta por línea - Análisis del contenido de la carpeta
/private/etc/paths.d
. Cada archivo en esa carpeta puede contener múltiples rutas, una ruta por línea. El orden de carga se determina primero por el nombre del archivo y luego por el orden de las líneas en el archivo. - Una instrucción
setenv PATH
en/private/etc/launchd.conf
, que agregará esa ruta a la ruta ya incorporada en # 1 y # 2 (no debe usar $ PATH para hacer referencia a la variable PATH que se ha creado hasta ahora). Sin embargo, configurar el PATH aquí es completamente innecesario dadas las otras dos opciones, aunque este es el lugar donde se pueden establecer otras variables de entorno global para todos los usuarios.
Todos los usuarios y las aplicaciones heredan estas rutas y variables, por lo que son realmente globales: cerrar sesión y no restablecerán estas rutas, se crean para el sistema y se crean antes de que cualquier usuario tenga la oportunidad de iniciar sesión. por lo que los cambios en estos requieren un reinicio del sistema para que surtan efecto.
Por cierto, una instalación limpia de OS 10.7.x Lion no tiene una lista de environment.plist
que pueda encontrar, por lo que puede funcionar pero también puede estar en desuso.
Desafortunadamente ninguna de estas respuestas resolvió el problema específico que tenía.
Aquí hay una solución simple sin tener que meterse con bash
. En mi caso, estaba haciendo que gradle
funcionara (para Android Studio
).
Por cierto, estos pasos se relacionan con OSX (Mountain Lion 10.8.5)
- Abre la Terminal.
Ejecuta el siguiente comando:
sudo nano /etc/paths
(osudo vim /etc/paths
para vim)- Vaya al final del archivo e ingrese la ruta que desea agregar.
- Pulsa control-x para salir.
- Introduzca ''Y'' para guardar el búfer modificado.
Abra una nueva ventana de terminal y luego escriba:
echo $PATH
Debería ver la nueva ruta adjunta al final de la RUTA
Obtuve estos detalles de este post:
http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q
Espero que pueda ayudar a alguien mas
Lo que me funcionó es crear un .launchd.conf
con las variables que necesitaba:
setenv FOO barbaz
Este archivo es leído por launchd al iniciar sesión. Puede agregar una variable ''sobre la marcha'' al launchd en ejecución usando:
launchctl setenv FOO barbaz`
De hecho, .launchd.cond
simplemente contiene comandos launchctl.
Las variables configuradas de esta manera parecen estar presentes en las aplicaciones GUI correctamente.
Si está intentando configurar sus variables LANG o LC_ de esta manera, y está utilizando iTerm2, asegúrese de deshabilitar la configuración ''Establecer variables de configuración regional automáticamente'' en la pestaña Terminal del perfil que está usando. Eso parece anular las variables de entorno de launchd, y en mi caso fue establecer un LC_CTYPE roto que causó problemas en servidores remotos (que superaron la variable).
(La lista environment.plist todavía parece funcionar en mi Lion. Sin embargo, puedes usar el panel de preferencias de RCenvironment para mantener el archivo en lugar de editarlo manualmente o Xcode requerido. Aún parece funcionar en Lion, aunque la última actualización es de Snow Leopard era. Es mi método preferido personalmente.)
Más detalles, que quizás puedan ser útiles para alguien:
Debido a mis propias exploraciones, ahora sé cómo configurar variables de entorno en 7 de 8 formas diferentes. Estaba tratando de obtener un envar a través de una aplicación que estoy desarrollando bajo Xcode. Configuré los "trazadores" de los envars que usan estos métodos diferentes para decirme cuáles entran en el ámbito de mi aplicación. A continuación, puede ver que la edición del "esquema" en Xcode para agregar argumentos funciona, al igual que "putenv". Lo que no lo estableció en ese ámbito: ~ / .MACOS / environment.plist, plist específico de la aplicación, .profile, y agregar una fase de compilación para ejecutar un script personalizado (encontré otra forma en Xcode [al menos] para establecer uno, pero olvidó lo que llamé el trazador y no puedo encontrarlo ahora; tal vez esté en otra máquina ...)
GPU_DUMP_DEVICE_KERNEL es 3
GPU_DUMP_TRK_ENVPLIST es (nulo)
GPU_DUMP_TRK_APPPLIST es (nulo)
GPU_DUMP_TRK_DOTPROFILE es (nulo)
GPU_DUMP_TRK_RUNSCRIPT es (nulo)
GPU_DUMP_TRK_SCHARGS es 1
GPU_DUMP_TRK_PUTENV es 1
... por otro lado, si entro a la Terminal y digo "set", parece que el único que recibe es el de .profile (habría pensado que recuperaría el medio ambiente. también enumerar, y Seguro que una vez vi un segundo marcador en la Terminal, por lo que es probable que algo se haya vuelto torpe desde entonces. Día largo ...)
Paso 1: abrir ~/.bash_profile
Ahora se abre un editor de texto:
Paso 2: el nombre de la variable debe estar en mayúsculas. en este ejemplo la variable es NODE_ENV
export NODE_ENV=development
3: export NODE_ENV=development
Guárdalo y cierra.
Reinicie su sistema.
Hecho.
Para comprobar la variable env: abrir terminal y tipo
echo $NODE_ENV
Primero, una cosa que se debe reconocer acerca de OS X es que está construido en Unix. Aquí es donde entra en juego el .bash_profile. Cuando inicias la aplicación Terminal en OS X, obtienes un shell bash por defecto El shell bash proviene de Unix y cuando se carga ejecuta el script .bash_profile. Puede modificar este script para que su usuario cambie su configuración. Este archivo se encuentra en:
~/.bash_profile
Actualización para Mavericks
OS X Mavericks no utiliza environment.plist, al menos no para las aplicaciones de Windows OS OS. Puede utilizar la configuración de launchd para aplicaciones de ventana. El .bash_profile todavía es compatible ya que es parte del shell bash utilizado en Terminal.
León y león de montaña solamente
Las aplicaciones de Windows OS X reciben variables de entorno del archivo environment.plist. Esto es probablemente lo que quieres decir con el archivo ".plist". Este archivo se encuentra en:
~/.MacOSX/environment.plist
Si realiza un cambio en su archivo environment.plist, entonces las aplicaciones de Windows de OS X, incluida la aplicación Terminal, tendrán configuradas esas variables de entorno. Cualquier variable de entorno que establezca en su .bash_profile solo afectará sus shells de bash.
Generalmente solo establezco variables en mi archivo .bash_profile y no cambio el archivo .plist (o el archivo launchd en Mavericks). La mayoría de las aplicaciones de ventanas de OS X no necesitan ningún entorno personalizado. Solo cuando una aplicación realmente necesita una variable de entorno específica, cambio el archivo environment.plist (o launchd en Mavericks).
Parece que lo que quiere es cambiar el archivo environment.plist, en lugar de .bash_profile.
Una última cosa, si buscas esos archivos, creo que no los encontrarás. Si recuerdo correctamente, no estaban en mi instalación inicial de Lion.
Edición: Aquí hay algunas instrucciones para crear un archivo plist.
- Abrir Xcode
- Seleccione Archivo -> Nuevo -> Nuevo archivo ...
- Bajo Mac OS X seleccione Recursos
- Elija un archivo plist
- Sigue el resto de las indicaciones.
Para editar el archivo, puede presionar Control y hacer clic para obtener un menú y seleccionar Agregar fila. A continuación, puede agregar un par de valores clave. Para las variables de entorno, la clave es el nombre de la variable de entorno y el valor es el valor real para esa variable de entorno.
Una vez creado el archivo plist, puede abrirlo con Xcode para modificarlo cuando lo desee.
Su ".profile" o ".bash_profile" son simplemente archivos que están presentes en su carpeta "home". Si abre una ventana del Finder y hace clic en el nombre de su cuenta en el panel de Favoritos ... no los verá. Si abre una ventana de Terminal y escribe "ls" para listar los archivos ... aún no los verá. Pero puedes encontrarlos usando "ls -a" en la terminal. O si abre su editor de texto favorito (diga TextEdit ya que viene con OS X) y haga clic en Archivo-> Abrir y luego presione Comando + Mayús +. y haga clic en el nombre de su cuenta (carpeta de inicio) también los verá. Si no los ve, simplemente puede crear uno en su editor de texto favorito.
Ahora, agregar variables de entorno es bastante sencillo y muy similar a las ventanas conceptualmente. En su .profile solo agregue, uno por línea, el nombre de la variable y su valor de la siguiente manera:
export JAVA_HOME=/Library/Java/Home
export JRE_HOME=/Library/Java/Home
etc.
Si está modificando su variable "PATH", asegúrese de incluir el PATH predeterminado del sistema que ya estaba establecido para usted:
export PATH=$PATH:/path/to/my/stuff
Ahora aquí está la parte peculiar, puede abrir una nueva ventana de Terminal para que las nuevas variables surtan efecto, o deberá escribir ".profile" o ". .Bash_profile" para volver a cargar el archivo y aplicar el contenido. a su entorno actual de Terminal.
Puede verificar que sus cambios tuvieron efecto usando el comando "set" en su Terminal. Simplemente escriba "set" (o "set | more" si prefiere una lista paginada) y asegúrese de que lo que agregó al archivo está allí.
En cuanto a agregar variables de entorno a las aplicaciones GUI, normalmente no es necesario y me gustaría saber más sobre lo que está tratando de hacer específicamente para darle una mejor respuesta.
Terminal abierta:
vi ~/.bash_profile
Aplicar cambio al sistema (no es necesario reiniciar la computadora):
source ~/.bash_profile
(También funciona con macOS Sierra 10.12.1)
Tomé la ruta idiota. Se agregaron estos al final de / etc / profile
for environment in `find /etc/environments.d -type f`
do
. $environment
done
creó una carpeta / etc / environment crea un archivo en él llamado "oracle" o "lo que sea" y agregó las cosas que necesitaba configurarlo globalmente.
/ 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
Tuve un problema con Eclipse (comenzó como GUI, no desde un script) en Maverics que no tomaba PATH personalizado. Intenté todos los métodos mencionados anteriormente en vano. Finalmente encontré la respuesta de trabajo más simple basada en sugerencias de here :
Vaya a la carpeta /Applications/eclipse/Eclipse.app/Contents
Edite el archivo Info.plist con editor de texto (o XCode), agregue el diccionario LSEnvironment para la variable de entorno con ruta completa . Tenga en cuenta que incluye también / 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> ...
Actualizar los parámetros para la aplicación con
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
Reiniciar Eclipse
Déjame ilustrarte de mi ejemplo personal de una manera muy redundante.
- Primero después de instalar JDK, asegúrese de que esté instalado.
A veces, macOS o Linux configuran automáticamente la variable de entorno a diferencia de Windows. Pero ese no es siempre el caso. Así que vamos a comprobarlo. La línea inmediatamente después de echo $ JAVA_HOME estaría vacía si la variable de entorno no está establecida. Debe estar vacío en su caso.
Ahora necesitamos verificar si tenemos el archivo bash_profile. Ya viste que en mi caso ya tenemos bash_profile. Si no tenemos que crear un archivo bash_profile.
Verifique nuevamente para asegurarse de que el archivo bash_profile esté allí.
Ahora vamos a abrir el archivo bash_profile. macOS lo abre utilizando su programa TextEdit predeterminado.
Este es el archivo donde se guardan las variables de entorno. Si ha abierto un nuevo archivo bash_profile, debe estar vacío. En mi caso, ya estaba configurado para el lenguaje de programación Python y la distribución Anaconda. Ahora, necesito agregar una variable de entorno para Java que solo está agregando la primera línea. DEBES INTRODUCIR LA VERBATIMA DE PRIMERA LINEA. SOLO la primera línea. Guarde y cierre el TextEdit. A continuación, cierre la terminal.
Abre el terminal de nuevo. Vamos a comprobar si la variable de entorno está configurada.
echo $PATH
imprime el valor de la ruta actual
Luego haz vim ~/.bash_profile
y escribe
export PATH=$PATH:/new/path/to/be/added
Aquí está agregando a la ruta anterior, por lo que conserva la ruta antigua y le agrega su nueva ruta.
entonces hazlo
source ~/.bash_profile
Esto lo ejecutará y agregará la ruta.
entonces otra vez verifique con
echo $PATH