No se puede agregar un archivo ejecutable a PATH en Linux

0

Tengo esto en mi ~/.bash_profile:

PATH=$PATH:~/Downloads/sublimetext
export PATH

Pero sublimetexten la carpeta no se agrega a la ruta. Sublime Text proporciona esta salida cuando se envía al comando de archivo:

sublime_text: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
fergusdawson
fuente
1
se puede mostrar la salida de: ps -p $$ | tail -1 | awk '{print $NF}', ls -lad ~/Downloads/sublimetexty ls -la ~/Downloads/sublimetext/sublime_text?
Christopher Neylan
Parece que el problema aquí es que sus PATHdeclaraciones no son sourced, por lo que debe asegurarse de hacer exactamente eso: source ~/.bash_profiley luego mirar echo $PATH.

Respuestas:

3

PATHcontiene directorios, no archivos ejecutables. Tratar PATH=$PATH:~/Downloads. Aunque, en realidad, no deberías poner tu directorio de descargas en tu camino; mueva el ejecutable a un lugar apropiado. Hacer un ~/bindirectorio, por ejemplo.

jjlin
fuente
Moví sublimetext a ~ / bin y lo agregué a mi ruta. La cosa es que el texto sublime es un directorio que contiene el archivo binario sublime_text. Así que ya estoy haciendo referencia a un directorio en mi ruta, no a un directorio. Sin embargo, no aparecerá cuando intento ejecutarlo desde el shell.
fergusdawson
Por lo tanto, sea más específico sobre "no aparecerá". ¿Exactamente qué pasa? ¿Hay un mensaje de error?
jjlin
Lo que quise decir con esto fue que no está incluido en el camino. Recibo un error estándar de 'cmd no encontrado' si intento ejecutar el programa desde fuera del directorio en el que está almacenado. Definitivamente lo declaro correctamente en bash_profile porque si hago lo mismo con otro ejecutable (un script de Python, por ejemplo ) funciona y puedo llamarlo desde cualquier lugar. Entonces, puede ver a partir de esto que el problema no es que el archivo no sea ejecutable o que no lo agregue a la ruta correctamente. Espero ser lo suficientemente claro.
fergusdawson
Parece que tu PATHtodavía no está bien, entonces. ¿Puedes actualizar tu pregunta con la salida de echo $PATH?
jjlin
0

¿Está establecido en permisos para ser ejecutable? ( chmod o+x ~/Downloads/sublimetext/sublime_textpara hacerlo)

Adrian Panasiuk
fuente
Lo he estado ejecutando con ./sublime_text para que sea ejecutable. Acabo de probar tu comando y no cambió nada.
fergusdawson
0

Primero, verifique si debe usar la versión de 32 bits o de 64 bits.

En segundo lugar, cree un script de shell:

#!/bin/sh
# sublime shell script
# make sure there is no spaces in path.

if [ -d "$HOME/Downloads/SublimeText2" ] ; then
    PATH="$HOME/Downloads/SublimeText2:$PATH"
fi

sublime_text $@
#EOS

Ahora colóquelo en su ~ / bin y hágalo ejecutable.

$ chmod +x sublime

~/Desktop$ sublime -h | head -1

Sublime Text 2 Build 2181
tao
fuente