Agregar un binario a mi camino

15

Tengo un ejecutable Quiero ejecutar el ejecutable en la terminal con el nombre solo como otros comandos.

Puedo poner mi en el ejecutable /usr/local/bino podría sumar su PATHa ~/.bashrc. Ambos funcionarán.

¿Qué es mejor? ¿Hay alguna diferencia?

Mohammad Reza Rezwani
fuente

Respuestas:

12

Por ejemplo, déjame asumir que tienes un ejecutable myscript. Necesitas ejecutarlo desde una terminal como,

/path/to/myscript

Cambio de nivel de usuario

Si agrega el PATHejecutable a ese ~/.bashrc, puede ejecutar el ejecutable con el nombre solo desde cualquier lugar ( ya se mencionó Avinash Raj ), como

myscript

Pero el cambio se verá afectado en el nivel de usuario . Eso significa que si tiene algún otro usuario, no podrá acceder al ejecutable solo con su nombre. Si tienen el permiso adecuado, necesitan ejecutar el ejecutable como,

/path/to/myscript

Además, no podrá ejecutar el script como sudo, ya que no está en la PATHraíz. Para ejecutarlo como sudonecesita,

sudo /path/to/myscript

cambio de nivel del sistema

Si coloca su script /usr/local/bin, puede acceder a todo el sistema y para todos los usuarios. En ese caso, cualquier usuario puede ejecutar su ejecutable como (sujeto a tener los permisos adecuados)

myscript

En ese caso, puede ejecutar el ejecutable como sudotambién,

sudo myscript

Ahora elija una forma dependiendo de su necesidad.

souravc
fuente
2

Agregar la ubicación del archivo a su $PATHvariable en su ~/.bashrcarchivo solo le permitirá ejecutarlo desde cualquier ubicación, mientras que ponerlo dentro /usr/bin/permitirá a todos los usuarios en su sistema ejecutar ese archivo desde cualquier ubicación.

¿Porqué es eso? Porque su ~/.bashrcarchivo solo es visible para usted como usuario. Por lo tanto, todos los cambios variables realizados se limitan a usted. Mientras que agregar ese archivo a /usr/binpermitirá que el archivo permanezca allí para todos los usuarios y dado que /usr/binestá presente en la $PATHvariable a menos que alguien lo elimine, permitirá que todos los usuarios lo ejecuten desde cualquier ubicación.

Jobin
fuente
1

Si coloca el archivo ejecutable en /usr/bino /usr/local/bin, podrá ejecutar ese programa solo especificando el nombre (en your-programlugar de /usr/local/bin/your-program).

Si en su lugar agrega el directorio que contiene el programa al ~/.bashrcarchivo PATH, entonces cualquier archivo ejecutable presente en ese directorio puede iniciarse simplemente escribiendo su nombre.

Avinash Raj
fuente
1
Esta información es falsa, aún puede iniciar el ejecutable incluso si no está en "ese directorio".
Lekensteyn
¿Cómo es esto falso ?, explique un poco más.
Avinash Raj
1
Ok, me costó mucho leer su respuesta (y por lo tanto cometí un error), así que la edité para eliminar la confusión y remoté el voto negativo. Espero que ayude.
Lekensteyn
Entonces, la pregunta es: ¿Qué es mejor? ¿Hay alguna diferencia? Prácticamente no dijiste nada más que el OP.
Radu Rădeanu
Respondí a la pregunta del sistema operativo pero no en un formato breve.
Avinash Raj
0

Solo como complemento a la respuesta de @souravc ...

Para el "Cambio de nivel de usuario", en lugar de editar el ~/.bashrcarchivo, simplemente puede crear el directorio $HOME/bin/y colocar sus scripts allí.

El directorio se agregará automáticamente a PATH(al menos desde Ubuntu 12.04), lo que significa que podrá ejecutar todos los scripts / ejecutables dentro de ese directorio con un simple:

myscript

Solo mis 2 centavos. :)

PD: intenté publicar esto como un comentario a la respuesta de @souravc, pero no tenía suficiente reputación. :-(

Inquieto
fuente