¿Cuál es la forma correcta de agregar archivos binarios de un solo usuario a $PATH?

¿Cuál es la forma correcta de agregar archivos binarios de un solo usuario a $PATH?

Como la mayoría de la gente, ocasionalmente instalo cosas o escribo/uso scripts que provienen de fuera de los repositorios de mi distribución o que están "hechos a mano", por lo que es posible que no terminen en la ruta predeterminada del sistema o no deban agregarse a ella.

Ahora hay diferentes maneras de proceder.

Algo que quizás solo quiera ejecutar ocasionalmente o que solo necesite ejecutar en un directorio determinado de todos modos puede permanecer como está desde cd ~/stuff/fancyappentonces ./fancyexecutablees lo suficientemente bueno.

Pero a veces, es posible que desee poder simplemente hacer algo como backup.shdesde cualquier ubicación en la que me encuentre u otros programas necesiten conocer un determinado ejecutable y, para ello, puedo actualizar mi $PATH con algo como PATH=$PATH:~/bin/backup/y export PATHreiniciar mi sesión. Sin embargo, esto me lleva al problema de tener un "contenedor de inicio" donde muevo/enlazo simbólicamente cada ejecutable ~/bin/, o cuando quiero tener un contenedor de inicio antiguo, tener que agregar cada subdirectorio a mi ruta. (O podríahackear algo juntos para hacer que la ruta sea recursiva)

Entonces, ¿cuál es la forma adecuada, recomendada y segura de manejar el suyo propio binque tendrá múltiples ejecutables y subdirectorios?

Respuesta1

Instalo todo el software integrado localmente en /home/user/.localel directorio. Este directorio básicamente copia la estructura de directorios /usrcomo puede ver:

> ls ~/.local
bin  etc  include  jars  lib  lib64  libexec  man  share

Puede indicar las herramientas de compilación para configurar este directorio como prefijo de instalación. Algunas herramientas utilizan el valor de la variable de entorno PREFIXpara determinar la ubicación de instalación, por lo que es una buena idea configurarlo también, pero no confíe en ello.

Tenga en cuenta que tendrá que establecer el valor de varios entornos como PATH,,, LD_LIBRARY_PATHen PKG_CONFIG_PATHconsecuencia CLASSPATH.

información relacionada