¿Agregar un nuevo ejecutable a la variable de entorno PATH?

16

Estoy tratando de instalar esta biblioteca llamada phantomjs.

Las instrucciones incluyen esta línea:

http://code.google.com/p/phantomjs/wiki/BuildInstructions

Para mayor comodidad, copie el archivo ejecutable bin / phantomjs.app / Contents / MacOS / phantomjs en algún directorio de su RUTA.

¿Cómo hago esto?

Harry
fuente
No creo que deba preocuparse por poner eso en su camino ya que bin ya está en él. Pero si usted quiere, puede encontrar la manera de lograr que aquí: troubleshooters.com/linux/prepostpath.htm
@cksum pero este es un camino relativo; No sabemos qué viene antes del "contenedor".
bneely
@bneely Sí, pero no hay ~ / bin. Las únicas ubicaciones son / bin, / usr / bin y / usr / local / bin. Todos los cuales ya están en tu camino. Si ejecuta path, verá lo siguiente de forma predeterminada: PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binno he revisado el script de instalación del programa en cuestión, pero sería extremadamente improbable que lo instale en su propia carpeta 'bin' en alguna parte. Y no puede agregar rutas relativas AFAIK. Me inclino a pensar solo un error tipográfico de una guía descuidada.
Sé que no se pueden agregar rutas relativas; Estoy afirmando que la ruta en la pregunta es una ruta relativa porque no comienza con un / o un ~.
bneely

Respuestas:

10

Para averiguar lo que está en su PATH, abra una ventana de terminal y ejecute este comando: echo $PATH. El resultado es una lista de directorios separados por dos puntos, cuyo contenido puede ejecutarse sin especificar la ruta completa.

Como / usr / bin está en mi camino, puedo ejecutar el wcomando simplemente escribiendo en wlugar del completo /usr/bin/w.

Además, no tiene que mover el ejecutable a uno de los directorios PATH listados. Otras opciones incluyen

  • Deje el ejecutable donde está, y enlace simbólicamente a él desde uno de los directorios PATH
  • Agregue un directorio a su RUTA configurándolo explícitamente en un script de inicio de sesión para su shell
amablemente
fuente
Por favor, siga los consejos de @ Gerry en la otra respuesta y enlace simbólicamente . ¡Es la forma más limpia!
cregox
Si, por casualidad, necesita un directorio completo en el PATH, porque hay muchos ejecutables a los que necesita acceso, no hay otra opción y para eso PATHestá. Actualmente utilizamos el ~ / .bash_profile para agregar a la ruta .
cregox
20

La forma más limpia de lograr esto sería hacer un enlace simbólico del binario en el directorio / usr / local / bin (que está incluido en PATH por defecto). Es posible que deba crear este directorio si aún no existe. Puede verificar si estos directorios ya están en su RUTA abriendo Terminal.app y escribiendo:

echo $PATH

Esto generará una lista delimitada por dos puntos de todos los directorios en su RUTA.

Si los directorios / usr / local o / usr / local / bin aún no existen, ejecute lo siguiente:

sudo mkdir -p /usr/local/bin

Enlace simbólico el binario, reemplace (/ Aplicaciones) con la ruta a phantomjs.app si difiere:

sudo ln -s /Applications/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin

Ahora no debería tener problemas para ejecutar phantomjs desde la línea de comandos.

Gerry
fuente
+1,ls /usr/local/bin/ || sudo mkdir /usr/local/bin/ ; sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
Jose Carlos Ramos Carmenates
3

Volviendo a la raíz de su problema, si está instalando phantomjs puede usar npm para que sea más fácil.

Si lo hace, puede ejecutar:

npm install -g phantomjs-prebuilt

que instalará el binario dentro del directorio bin adecuado. (el indicador -g indica a npm que el paquete se instalará globalmente)

ShaneMit
fuente
0

Si bien el enlace simbólico del archivo desde otro directorio funciona, prefiero copiar / mover el archivo a usr/local/bin, para no tenerlo "dos veces".

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin
Niko
fuente