Quiero instalar un programa en Linux y ejecutarlo como un demonio. (Team Speak 3 en este caso, pero la pregunta es de naturaleza general). No se proporciona ningún paquete, solo binarios tarranados. ¿En qué parte de la estructura de directorios debo poner un programa de este tipo por convención?
En la web descubrí que / opt es para "aplicaciones de complementos opcionales", mientras que / usr es para "programas de usuario". Encontré un tutorial que sugería / opt mientras que el otro sugería / usr.
Entonces, ¿cuál es "más correcto"?
/usr/local
) O sobre cómo crear su propio paquete.Respuestas:
El "más correcto" depende de su distribución. Debe consultar las pautas de su distribución sobre dónde colocar el software que no es administrado por el administrador de paquetes (a menudo
/usr/local
) O sobre cómo crear su propio paquete.Como dijiste, TeamSpeak simplemente puso todo en una carpeta (y puede que no sea fácil de reorganizar), sí,
/opt/
probablemente sea lo mejor.(Pero, por ejemplo, en Archlinux, el administrador de paquetes puede instalar allí, así que todavía haría un PKGBUILD para instalar
/opt
).Además, las distribuciones generalmente intentan seguir el Estándar de jerarquía del sistema de archivos , por lo que aquí es donde buscar una convención más genérica.
fuente
Si va a compilar su propio software, finalmente controlará la ubicación de instalación. Por convención, el software compilado e instalado manualmente (no a través de un administrador de paquetes, por ejemplo, apt, yum, pacman) está instalado en
/usr/local
. Algunos paquetes (programas) crearán un subdirectorio/usr/local
para almacenar todos sus archivos relevantes, como/usr/local/openssl
. Otros paquetes instalarán sus archivos necesarios en directorios existentes como/usr/local/sbin
y/usr/local/etc
. Estas son simplemente ubicaciones predeterminadas y se pueden cambiar durante la compilación.Cuando está compilando software, la ubicación de instalación se puede especificar utilizando la
--prefix=
opción cuando se ejecuta./configure
. Se recomienda encarecidamente que mire todas las opciones disponibles para su paquete ejecutando$ ./configure --help | less
. Además, es una buena idea navegar por los documentos INSTALL y README provistos con su paquete. Tienden a incluir instrucciones de instalación e información de dependencia que es específica del paquete.También debe tenerse en cuenta que, aunque puede almacenar software en cualquier lugar, de acuerdo con el FHS , el código fuente para el software instalado localmente debe almacenarse en
/usr/local/src
Standardizing, donde almacena sus árboles fuente le permitirá localizar fácilmente un árbol si necesita copiar un stock archivo de configuración o binario. Aunque algunos paquetes lo usan, su código fuente no debe almacenarse/usr/src
como está designado para el software del sistema, como el kernel.Finalmente, debe asegurarse de que su ubicación de instalación esté incluida en su
$PATH
. Si decide instalar su paquete/opt
pero no está en su$PATH
shell, no encontrará los ejecutables y tendrá que usar la ruta absoluta para invocar sus programas. Aquí hay algunas excelentes discusiones de AU sobre la configuración de su$PATH
Lectura adicional:
man hier
fuente
El Linux Standard Base y el estándar de jerarquía del sistema de ficheros son sin duda los estándares de dónde y cómo se debe instalar el software en un sistema Linux y el software sugerirían la colocación que no está incluido en su distribución, ya sea en
/opt
o/usr/local/
, o más bien los subdirectorios en la misma (/opt/<package> /opt/<provider> /usr/local/bin
).La mejor práctica es convertir el software que descargue a un paquete de software instalable nativo de su distribución, por ejemplo, formatos dpkg o rpm. Eso facilitará la presentación de informes, la actualización y la eliminación limpia del software.
fuente
/opt
y/usr/local/
eran las dos opciones disponibles, pero quería información específica sobre cuál de esas opciones utilizar. Esta podría ser una respuesta válida si, en cambio, afirmara que las dos ubicaciones son intercambiables (aunque diría que sería una respuesta correcta en tal caso).Los binarios van en la
bin
carpeta por convenciones comunes, depende de usted cómo organizaría la estructura de su paquete, puedo pensar/opt/<prog_name>/
si es solo una lista de binarios.fuente
Tuve la misma pregunta al instalar Eclipse a través del instalador de Eclipse.
Noté que Gimp, Perl y Vim están instalados en la
/usr/share
carpeta y decidí instalarlo allí.fuente
Hay dos formas en que se pueden instalar programas, dependiendo de cómo estén empaquetados.
A través del administrador de software (apt, synaptic, Gdebi, etc.): el programa está en forma de paquete, generalmente .deb o rpm. En la mayoría de los casos, los administradores de software manejan las dependencias e instalarán binarios generalmente en
/usr/bin
archivos de configuración,/etc
etc. También pueden crear un archivo de configuración para el programa en su hogar, por lo general~/.foo
. Si puede editar este archivo, también puede cambiar fácilmente la configuración de su sesión de esta manera. Cuando elimine el paquete, el administrador buscará todos los archivos y los eliminará limpiamente (almacenó todas las ubicaciones en un archivo de texto especial). Pero puede preservar algunos archivos de configuración, por ejemplo, el de su carpeta de inicio.Descarga un programa (generalmente comprimido) en forma de archivos binarios precompilados para su arquitectura. El archivo ejecutable del programa es por lo general en una sola carpeta junto a otros archivos (enlazado dinámicamente bibliotecas, etc.) Toda esta carpeta puede ser copiado, con privilegios de root, ya sea a
/opt
o/usr/bin
y podría, si los permisos permiten, ser utilizado por cualquier usuario. Yo mismo puse las carpetas con archivos binarios en mi carpeta de inicio para~/bin
. Ahora debería poder ejecutar el programa invocando su archivo bin.fuente