Ejecuto muchas aplicaciones de código abierto, incluidas Java y Tomcat. Parece que la mayoría de las instrucciones tienen mis aplicaciones ejecutándose desde el /vardirectorio. Pero de vez en cuando, también veo el /optdirectorio. Mientras estoy en eso, también veo /usr/local/e incluso /etctambién.
¿Cuándo debo instalar aplicaciones en una carpeta u otra? ¿Hay pros y contras de cada uno? ¿Tiene que ver con el historial de sabores (Solaris vs Linux o Red Hat vs Ubuntu)?
                    
                        linux
                                installation
                                
                    
                    
                        Trevor Allred
fuente
                
                fuente

Respuestas:
El estándar para estos problemas es el Estándar de jerarquía de archivos . Es un documento bastante grande. Básicamente (y más o menos), las rutas estándar en Linux son:
/bin&/sbinson para programas vitales para el sistema operativo, siendo sbin solo para administradores;/usr/bin&/usr/sbinson para programas no vitales, siendo sbin solo para administradores;/vares para vivir datos para programas. Pueden ser datos de caché, datos de spool, datos temporales (a menos que estén en/tmp, que se borran en cada reinicio), etc./usr/locales para programas instalados localmente. Por lo general, aloja programas que siguen los estándares pero que no fueron empaquetados para el sistema operativo, sino que el administrador los instaló manualmente (usando, por ejemplo./configure && make && make install), así como scripts de administrador;/optes para programas que no están empaquetados y no siguen los estándares. Simplemente pondría todas las bibliotecas allí junto con el programa. A menudo es una solución rápida y sucia, pero también se puede usar para programas creados por usted y para los que desea tener una ruta específica. Puede crear su propia ruta (p/opt/yourcompany. Ej. ) Dentro de ella, y en este caso se le recomienda registrarla como parte de las rutas estándar;/etcno debe contener programas, sino configuraciones.Si sus programas son específicos de los servicios prestados por el servicio,
/srvtambién puede ser una buena ubicación para ellos. Por ejemplo, prefiero usar/srv/wwwpara sitios web en lugar de/var/wwwasegurarme de que el directorio solo contendrá datos que agregué yo mismo, y nada que provenga de paquetes de software.Hay algunas diferencias entre distribuciones. Por ejemplo, los sistemas RedHat usan
libexecdirectorios cuando los sistemas Debian / Ubuntu no lo hacen.El FHS es utilizado principalmente por las distribuciones de Linux (en realidad no conozco ningún otro sistema operativo que realmente lo cumpla). Otros sistemas Unix no lo siguen. Por ejemplo, los sistemas BSD tienden a usarse
/usr/localpara programas empaquetados, que no es el caso de Linux. Solaris tiene rutas estándar muy diferentes.Le recomiendo encarecidamente que lea el documento de FHS que he vinculado anteriormente si desea obtener más información al respecto.
fuente
/srv. Estaba buscando un lugar para mis repositorios git y no me gustaba que mi contenido de Apache estuviera en/var/www./srvParece el lugar perfecto.varlugar dedata?/varporque es para "varios datos". En los primeros días, Unix estaba alojado en una sola unidad. Cuando no fue suficiente, obtuvieron uno nuevo, lo montaron/usry movieron todos los datos del usuario allí. Pero no fue suficiente y el disco viejo estaba lleno nuevamente pronto. Por lo que se trasladaron todos los binarios del sistema podría arrancar sin partir/binde/usr/bin. Simplemente se quedan sin espacio. Más tarde, necesitaron compartir datos entre los usuarios, por lo que lo hicieron/vary lo usaron como un cuadro desplegable. FHS está lleno de decisiones heredadas como esa y debe tomarse con una pizca de sal.optsignifica software opcional.varsignifica archivos de sistema variables. Por lo tanto, sus aplicaciones deben ir a/opt.fuente
/vares para variar los archivos del sistema, no "varios"./varporque es para "varios datos". Todavía tengo notas de un libro anterior a Internet que leí en ese entonces.Depende de cuál sea su estándar local.
Personalmente, no instalo nada en / var sin una buena razón. Mi / usr / local es casi siempre un montaje nfs fuera de la red, por lo que todo lo que no está empaquetado se instala en / opt.
fuente
/usr. Libs generadas dinámicamente podrían terminar en/var/libocasiones, pero no ver lo que usted realmente instalar en/var, desde el punto de vista del administrador. El programa podría usarlo ampliamente, pero debería estar bastante vacío antes de iniciarlo.