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.