Estoy tratando de usar /etc/paths.d para agregar un ejecutable a mi variable de ruta, pero hasta ahora no he tenido éxito.
La ruta completa del archivo ejecutable es: /opt/ImageMagick/bin/convert
/etc/paths.d contiene dos archivos: 40-XQuartz e ImageMagick
El 40-XQuartz contiene una línea: /opt/X11/bin
ImageMagick contiene una línea:/opt/ImageMagick/bin
Mi echo $PATH
da:
/Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin
Parece que solo el primer archivo (40-XQuartz) hace su trabajo. Los permisos de los dos archivos (40-XQuartz e ImageMagick) son exactamente los mismos, por lo que mi pregunta es por qué el primero funciona y el segundo no.
Estoy ejecutando OS X Mavericks.
/etc/paths.d
mi trabajo, pero reinicio cualquier aplicación de terminal que esté usando (ITerm2 en mi caso) para que la nueva ruta surta efectoRespuestas:
¿Ha comenzado un nuevo shell de inicio de sesión desde que agregó el nuevo archivo para ImageMagick? La configuración de la ruta desde las
paths.d
entradas se realiza en/etc/profile
y/etc/csh.login
, por lo que debe iniciar un nuevo shell para que las nuevas entradas surtan efecto.OS X utiliza
path_helper
para establecer la ruta en función de los archivos en/etc/paths.d
- siempre puede llamarlo manualmente (suponiendo un shell similar a Bourne aquí):fuente
Corriendo
agrega
/opt/ImageMagick/bin
aPATH
mi instalación.¿Estás anulando
PATH
en otro lugar como~/.bash_profile
?Los caminos en
/etc/paths.d/
se añaden a la ruta por/usr/libexec/path_helper
, que se ejecuta a partir de/etc/profile
,/etc/zsh.env
y/etc/csh.login
.path_helper
no se ejecuta mediante aplicaciones gráficas o cuando se invoca bash como un shell sin inicio de sesión.También puede establecer un valor predeterminado
PATH
en/etc/launchd.conf
:setenv PATH /Users/Administrator/.rbenv/shims:/Users/Administrator/.rbenv/bin:/Users/Administrator/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/opt/ImageMagick/bin|sudo tee -a /etc/launchd.conf
.launchctl</etc/launchd.conf;sudo launchctl</etc/launchd.conf
y vuelva a iniciar procesos.Prefiero cambiar la ruta
/etc/launchd.conf
, porque también afecta a los programas que no se inician desde shells, como los editores de texto y los programas iniciados por trabajos de launchd.fuente
Impresionante, solo estaba jugando agregando ImageMagic a mi Mac. No solo necesita
ImageMagick/bin
en suPATH
, también necesita un conjunto de variables de entorno, o agregado a:Para probar puede crearlo manualmente con:
La información para configurar una variable de entorno para Mac OS se puede encontrar aquí, ¿ Cómo configurar variables de entorno en OS X?
fuente