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 /var
directorio. Pero de vez en cuando, también veo el /opt
directorio. Mientras estoy en eso, también veo /usr/local/
e incluso /etc
tambié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
&/sbin
son para programas vitales para el sistema operativo, siendo sbin solo para administradores;/usr/bin
&/usr/sbin
son para programas no vitales, siendo sbin solo para administradores;/var
es 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/local
es 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;/opt
es 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;/etc
no debe contener programas, sino configuraciones.Si sus programas son específicos de los servicios prestados por el servicio,
/srv
también puede ser una buena ubicación para ellos. Por ejemplo, prefiero usar/srv/www
para sitios web en lugar de/var/www
asegurarme 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
libexec
directorios 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/local
para 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
./srv
Parece el lugar perfecto.var
lugar dedata
?/var
porque 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/usr
y 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/bin
de/usr/bin
. Simplemente se quedan sin espacio. Más tarde, necesitaron compartir datos entre los usuarios, por lo que lo hicieron/var
y lo usaron como un cuadro desplegable. FHS está lleno de decisiones heredadas como esa y debe tomarse con una pizca de sal.opt
significa software opcional.var
significa archivos de sistema variables. Por lo tanto, sus aplicaciones deben ir a/opt
.fuente
/var
es para variar los archivos del sistema, no "varios"./var
porque 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/lib
ocasiones, 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.