Cuando alguien dice "edite su archivo .plist" o "su .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 que hay tantos diferentes (¿por qué? ¿Hacen cosas diferentes?)
Entonces, ¿podría alguien explicar con mucha paciencia a un usuario anterior de Windows (que desea desesperadamente familiarizarse con el agradable pero inicialmente confuso mundo de OS X) cómo hacerlo 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 de hormiga que necesita las variables, pero lo más probable es que también haya otras necesidades.
Tenga en cuenta que también tengo Lion, ya que muchas de las respuestas que obtiene en Google parecen estar desactualizadas para Lion ...
También tenga en cuenta que prácticamente no tengo experiencia en el uso de la Terminal. Estoy dispuesto a aprender, pero explique a un novato ...
fuente
Respuestas:
Primero, una cosa a reconocer sobre OS X es que está construido en Unix. Aquí es donde entra el .bash_profile. Cuando inicia la aplicación Terminal en OS X, obtiene un shell bash de manera predeterminada. 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:
Actualización para Mavericks
OS X Mavericks no utiliza el ambiente.plist, al menos no para las aplicaciones de Windows OS X. Puede usar la configuración de launchd para aplicaciones con ventana. El .bash_profile todavía es compatible ya que es parte del shell bash utilizado en la Terminal.
Lion and Mountain Lion Only
Las aplicaciones con ventana OS X reciben variables de entorno del archivo environment.plist. Esto es probablemente lo que quiere decir con el archivo ".plist". Este archivo se encuentra en:
Si realiza un cambio en su archivo environment.plist, las aplicaciones de Windows 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.
En general, solo configuro variables en mi archivo .bash_profile y no cambio el archivo .plist (o el archivo launchd en Mavericks). La mayoría de las aplicaciones con ventana OS X no necesitan ningún entorno personalizado. Solo cuando una aplicación realmente necesita una variable de entorno específica, cambio el environment.plist (o el archivo launchd en Mavericks).
Parece que lo que quiere es cambiar el archivo environment.plist, en lugar de .bash_profile.
Una última cosa, si busca esos archivos, creo que no los encontrará. Si recuerdo correctamente, no estaban en mi instalación inicial de Lion.
Editar: Aquí hay algunas instrucciones para crear un archivo plist.
Para editar el archivo, puede hacer clic con la tecla Control presionada para obtener un menú y seleccionar Agregar fila. Luego 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 que se crea el archivo plist, puede abrirlo con Xcode para modificarlo en cualquier momento que lo desee.
fuente
~/.bashrc
.~/.bashrc
el archivo se ejecuta cada vez que abre un nuevo shell bash sin inicio de sesión, como xterm / aterm, y se~/.bash_profile
ejecuta solo con shells de inicio de sesión, es decir, cuando inicia sesión por primera vez en el sistema.Tu
.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 Favoritos, no los verá. Si abre una ventana de Terminal y escribels
para enumerar los archivos, aún no los verá. Sin embargo, puede encontrarlos utilizandols -a
en la terminal. O si abre su editor de texto favorito (diga TextEdit ya que viene con OS X) y haga Archivo-> Abrir y luego presione Command+ Shift+ .y haga clic en el nombre de su cuenta (carpeta de inicio), también los verá. Si no los ve, puede crear uno en su editor de texto favorito.Ahora, agregar variables de entorno es relativamente sencillo y notablemente similar a las ventanas conceptualmente. En su
.profile
solo agregado, uno por línea, el nombre de la variable y su valor de la siguiente manera:etc.
Si está modificando su variable "PATH", asegúrese de incluir el PATH predeterminado del sistema que ya estaba configurado para usted:
Ahora, esta es la parte peculiar: puede abrir una nueva ventana de Terminal para que las nuevas variables surtan efecto o deberá escribir
.profile
o.bash_profile
volver a cargar el archivo y aplicar el contenido al entorno de su Terminal actual.Puede verificar que sus cambios entraron en vigencia usando el comando "set" en su Terminal. Sólo tipo
set
(oset | 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 específicamente de hacer para darle una mejor respuesta.
fuente
. .profile
para cargarlas..profile
. Acabo de echar un vistazo a una máquina que compré recientemente y parece que están usando.profile
estos días y no.bash_profile
Aquí hay un poco más de información específicamente sobre la variable PATH en Lion OS 10.7.x:
Si necesita establecer la RUTA a nivel mundial, el sistema construye la RUTA en el siguiente orden:
/private/etc/paths
, una ruta por línea/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.setenv PATH
declaración en la/private/etc/launchd.conf
que se anexe ese camino a la ruta ya construido en el # 1 y # 2 (no se debe usar $ PATH para hacer referencia a la variable PATH que se ha construido hasta el momento). Pero, establecer la RUTA 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.Estas rutas y variables son heredadas por todos los usuarios y aplicaciones, por lo que son verdaderamente globales: cerrar la sesión y no restablecerá estas rutas; se crean para el sistema y se crean antes de que cualquier usuario tenga la oportunidad de iniciar sesión, entonces los cambios a estos requieren un reinicio del sistema para que surta efecto.
Por cierto, una instalación limpia de OS 10.7.x Lion no tiene una
environment.plist
que pueda encontrar, por lo que puede funcionar, pero también puede estar en desuso.fuente
paths.d
diferencia depaths
? Además, ¿el primero anula al segundo?imprime el valor actual de la ruta
Luego haz
vim ~/.bash_profile
y escribeaquí está agregando a la ruta anterior, por lo que conserva la ruta anterior y agrega su nueva ruta a ella
entonces hazlo
esto lo ejecutará y agregará la ruta
luego verifique nuevamente con
fuente
Lamentablemente, 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, me estaba poniendogradle
a trabajar (porAndroid Studio
).Por cierto, estos pasos se relacionan con OSX (Mountain Lion 10.8.5)
Ejecute el siguiente comando:
sudo nano /etc/paths
(osudo vim /etc/paths
para vim)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 esta publicación:
http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q
Espero que eso pueda ayudar a alguien más
fuente
Explicación Simplificada
Esta publicación / pregunta es algo antigua, por lo que responderé una versión simplificada para los usuarios de OS X Lion. De manera predeterminada, OSX Lion no tiene ninguno de los siguientes archivos:
A lo sumo, si ha hecho algo en la terminal, puede ver ~ / .bash_history
Lo que significa
Debe crear el archivo para configurar sus comandos bash predeterminados (comúnmente en ~ / .bashrc). Para hacer esto, use cualquier tipo de editor, aunque es más simple hacerlo dentro del terminal:
source ~/.bashrc
Ctrl + x Ctrl + s
(para guardar el archivo)Ctrl + x Ctrl + c
(para cerrar emacs)La próxima vez que salga y vuelva a cargar el terminal, debería cargar todas sus preferencias de bash. En buena medida, generalmente es una buena idea separar sus comandos en nombres de archivo útiles. Por ejemplo, desde ~ / .bashrc, debe tener un
source ~/.bash_aliases
y poner todos sus comandos de alias en ~ / .bash_aliases.fuente
Lo que funcionó para mí es crear un
.launchd.conf
con las variables que necesitaba:Este archivo es leído por launchd al iniciar sesión. Puede agregar una variable 'sobre la marcha' al launchd en ejecución usando:
De hecho,
.launchd.cond
simplemente contiene comandos de launchctl.Las variables configuradas de esta manera parecen estar presentes en las aplicaciones GUI correctamente.
Si está tratando de 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 local automáticamente' en la pestaña Terminal del Perfil que está utilizando. Eso parece anular las variables de entorno de launchd, y en mi caso fue configurar un LC_CTYPE roto que causa problemas en los servidores remotos (que pasaron la variable).
(El ambiente.plist todavía parece funcionar en mi Lion. Sin embargo, puede usar el panel de preferencias RCenvironment para mantener el archivo en lugar de editarlo manualmente o Xcode requerido. Todavía parece funcionar en Lion, aunque su última actualización es del Snow Leopard era. Lo convierte en mi método preferido personalmente.)
fuente
Configure su variable de entorno PATH en Mac OS
Abra el programa Terminal (está en su carpeta Aplicaciones / Utilidades por defecto). Ejecute el siguiente comando
Esto abrirá el archivo en su editor de texto predeterminado.
Para Android SDK como ejemplo:
Debe agregar la ruta al directorio de herramientas y herramientas de la plataforma 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:
Guarde el archivo y salga del editor de texto. Ejecute su .bash_profile para actualizar su RUTA.
Ahora, cada vez que abra el programa Terminal, su RUTA incluirá el SDK de Android.
fuente
Agregar variables de ruta a OS X Lion
Esto fue bastante sencillo y funcionó para mí, en la terminal:
Una respuesta similar fue aquí: http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516
fuente
cd
sin argumentos ocd ~/
.source .bash_profile
.echo "export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin/mysql" >> .bash_profile
Entonces, el único momento que puedo hacermysql -u root -p
es si ya estoy corriendo en la raíz. Mientras que puedo usar enApplications/XAMPP/xamppfiles/bin/mysql -u root -p
cualquier lugar. Probé el enfoque de reinicio mencionado: Yaw's y @ephsmith's./usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/XAMPP/xamppfiles/bin
. Cuando no soy root me sale/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$PATH
variable es específica del usuario (root es un usuario).Terminal abierta:
Aplicar el cambio al sistema (no es necesario reiniciar la computadora):
(También funciona con macOS Sierra 10.12.1)
fuente
Tuve un problema con Eclipse (comenzó como GUI, no desde el script) en Maverics porque no tomó la RUTA personalizada. Probé todos los métodos mencionados anteriormente en vano. Finalmente encontré la respuesta de trabajo más simple basada en sugerencias de aquí :
Vaya a la carpeta /Applications/eclipse/Eclipse.app/Contents
Edite el archivo Info.plist con el editor de texto (o XCode), agregue el diccionario LSEnvironment para la variable de entorno con la ruta completa . Tenga en cuenta que incluye también / usr / bin, etc.
Recargue los parámetros para la aplicación con
Reiniciar Eclipse
fuente
Déjame ilustrarte desde mi ejemplo personal de una manera muy redundante.
A veces, macOS o Linux configura automáticamente la variable de entorno para usted, a diferencia de Windows. Pero ese no es el caso siempre. Así que vamos a verlo. La línea inmediatamente después de echo $ JAVA_HOME estaría vacía si no se establece la variable de entorno. Debe estar vacío en su caso.
Ahora tenemos que verificar si tenemos el archivo bash_profile. Viste que en mi caso ya tenemos bash_profile. Si no, tenemos que crear un archivo bash_profile.
Cree un archivo bash_profile.
Verifique nuevamente para asegurarse de que el archivo bash_profile esté allí.
Ahora abramos el archivo bash_profile. macOS lo abre usando 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 agrega la primera línea. DEBE TIPETAR la primera línea VERBATIM. SOLO la primera línea. Guarde y cierre el TextEdit. Luego cierre la terminal.
Abre la terminal de nuevo. Verifiquemos si la variable de entorno está configurada.
fuente
Tomé la ruta idiota. Se agregaron al final de / etc / profile
creé una carpeta / etc / entornos, creé un archivo llamado "oráculo" o "lo que sea" y le agregué todo lo que necesitaba establecer globalmente.
/ etc $ cat /etc/environments.d/Oracle
fuente
Más detalles, que tal vez puedan ser útiles para alguien:
Debido a mis propias exploraciones, ahora sé cómo establecer 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é envars "trazador" utilizando estos diferentes métodos para decirme cuáles entran en el alcance de mi aplicación. De lo siguiente, puede ver que la edición del "esquema" en Xcode para agregar argumentos funciona, al igual que "putenv". Lo que no lo configuró en ese ámbito: ~ / .MACOS / environment.plist, plist específico de la aplicación, .profile y agregando una fase de compilación para ejecutar un script personalizado (encontré otra forma en Xcode [al menos] para configurar uno, pero olvidé lo que llamé 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 en Terminal y digo "set", parece que el único que obtiene es el de .profile (hubiera pensado que recogería el ambiente.plist también, y estoy Seguro, una vez que vi un segundo marcador envar en la Terminal, entonces algo probablemente se ha vuelto raro desde entonces. Largo día ...)
fuente
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
Paso 3:
export NODE_ENV=development
Guárdalo y ciérralo.
Reinicia tu sistema.
Hecho.
Para verificar la variable env: abra la terminal y escriba
fuente
Se recomienda verificar el shell de terminal predeterminado antes de configurar cualquier variable de entorno, mediante los siguientes comandos:
Si su terminal predeterminado es / bin / zsh (Z Shell) como en mi caso (Personalmente prefiero Z Shell), entonces debe configurar estas variables de entorno en el archivo ~ / .zshenv con los siguientes contenidos (en este ejemplo, estableciendo la variable de entorno JAVA_HOME , pero lo mismo se aplica a otros):
Del mismo modo, cualquier otro tipo de terminal no mencionado anteriormente, debe establecer la variable de entorno en su respectivo archivo env de terminal.
fuente