GNU/Linux >> Tutoriales Linux >  >> Linux

Creando un programa en bin

Hay dos formas de permitirle ejecutar el binario sin especificar su ruta (sin incluir la creación de alias o funciones de shell para ejecutarlo con una ruta absoluta para usted):

  1. Cópialo en un directorio que esté en tu $PATH .
  2. Agregue el directorio donde está a su $PATH .

Para copiar el archivo a un directorio en su ruta, por ejemplo /usr/local/bin (donde debe ir el software administrado localmente), debe tener privilegios de superusuario, lo que generalmente significa usar sudo :

$ sudo cp -i mybinary /usr/local/bin

Se debe tener cuidado de no sobrescribir ningún archivo existente en el directorio de destino (es por eso que agregué -i aquí).

Para agregar un directorio a su $PATH , agrega una línea en tu ~/.bashrc archivo (si está usando bash ):

PATH="$HOME/bin:$PATH"

... si el binario está en $HOME/bin .

Esto tiene la ventaja de que no necesita tener privilegios de superusuario ni cambiar/agregar nada en el sistema base de su máquina. Solo necesita mover el binario al bin directorio de su directorio de inicio.

Nota, cambios a .bashrc surte efecto cuando el archivo se obtiene la próxima vez, lo que sucede si abre una nueva terminal o cierra la sesión y vuelve a iniciarla, o ejecuta source ~/.bashrc manualmente.


Debería leer más sobre la variable PATH. Sospecho firmemente que deberías usarlo (o cambiarlo) apropiadamente.

Quiero poder ponerlo en el directorio bin

Supongo que te refieres a /bin/ o /usr/bin/ . No estoy seguro de que sea prudente agregar sus propios programas allí. Quizás sería mejor poner un enlace simbólico dentro de ellos (por ejemplo, usando algo como ln -sv $(realpath foobar.out) /usr/bin/ ), si desea absolutamente que su programa aparezca allí (que en mi humilde opinión es probablemente un error, ya que se está equivocando con el administrador de paquetes de su distribución).

Probablemente instalando su programa en /usr/local/bin/ es mucho más sabio (dejar ambos /bin/ y /usr/bin/ intacto, tal como lo proporciona y administra su distribución de Linux). Consulte LSB y lea más sobre el estándar de jerarquía de archivos.

... como comandos de todo el sistema, por ejemplo .... cd

Este es un concepto muy erróneo de su parte (en la variante original de su pregunta, eliminó correctamente cd luego). cd no es ni puede ser un ejecutable, es (y tiene que ser) un comando integrado de su shell.

Es posible que desee leer la Programación avanzada de Linux descargable gratuitamente para entender por qué cd no puede ser un ejecutable (el directorio de trabajo actual es parte del estado de cada proceso, y cada proceso tiene el suyo propio y podría cambiarlo usando chdir(2)...)


install /path/to/oobar.out /usr/local/bin/

Linux
  1. Contando el número de archivos en un directorio usando C

  2. Error fatal:cuda.h:No existe tal archivo o directorio

  3. Evite que 10.2 cree un directorio de Wolfram Mathematica en Linux

  4. Rsync copiando el directorio actual con nombre

  5. ¿Por qué Bash no da tal archivo o directorio para un programa que está en mi RUTA?

Cómo agregar un directorio a PATH en Linux

Crear, eliminar y administrar directorios en Linux

Python:¿cómo sabe /usr/bin/env qué programa usar?

¿Cd a un directorio de nombre desconocido en una ruta conocida?

Linux:agregar un directorio a PATH

Uso de / al usar cd