¿En qué directorio debo instalar programas en Linux?


44

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"?


1
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.
Leiaz

Gracias Leiaz Su comentario me ayudó a encontrar la respuesta ( askubuntu.com/questions/1148/… ). Entonces, supongo que debería ser / opt en mi caso (usando Linux Mint, que está basado en Ubuntu) y la aplicación está usando una sola carpeta. Si convierte su comentario en una respuesta, lo aceptaré.
Eiver

Respuestas:


27

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.


¿hay algún alias para saber dónde están ubicados cada directorio por uso? (por ejemplo, dónde colocar configuraciones de raíz, dónde colocar binarios, dependencias, plantillas ...)
Sandburg

5

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/localpara almacenar todos sus archivos relevantes, como /usr/local/openssl. Otros paquetes instalarán sus archivos necesarios en directorios existentes como /usr/local/sbiny /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/srccomo 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 /optpero no está en su $PATHshell, 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


5

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 /opto /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.


Esto prácticamente reafirma la pregunta en lugar de responderla. El OP lo sabía /opty /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).
JBentley

1

Los binarios van en la bincarpeta 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.


Me temo que los chicos de Team Speak 3 crearon el programa de tal manera que todo lo que necesita se encuentra solo en una carpeta (archivos binarios, archivos de configuración, registros), por lo que no usa / bin o / etc o / var / log
Eiver

1

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/sharecarpeta y decidí instalarlo allí.


0

Hay dos formas en que se pueden instalar programas, dependiendo de cómo estén empaquetados.

  1. 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/binarchivos de configuración, /etcetc. 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.

  2. 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 /opto /usr/biny 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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.