Estándar de jerarquía del sistema de archivos: ¿dónde colocar las funciones fuentebles?

9

Tengo algunos scripts de bash que ejecutan verificaciones del sistema. Estas secuencias de comandos obtienen las opciones de configuración de un archivo / etc / healthchecks / config.

Junto con el archivo de configuración, tengo un archivo de funciones compartidas. Los scripts deberían poder obtener ese archivo y ejecutar las funciones en él.

Basado en el estándar de jerarquía del sistema de archivos, ¿dónde debo colocar el archivo de funciones compartidas? No es una configuración, por lo que no parece pertenecer a / etc, pero tampoco se está ejecutando, por lo que / usr / bin parece incorrecto. Tal vez / usr / lib?

vastlysuperiorman
fuente

Respuestas:

7

Debe poner sus healthchecksejecutables en / usr / local / bin o en / opt / bin. Si ve que su carpeta / opt está vacía, significa que su distribución de Linux no la usa. Entonces, el lugar adecuado sería / usr / local.

/ usr / local y / opt es donde se debe colocar cada paquete / programa "manual". / usr es para paquetes administrados por administradores de paquetes (es decir, dpkg). / opt es el "lugar estándar" para paquetes manuales de acuerdo con FHS, pero las distribuciones de Debian usan / usr / local en su lugar.

Para los archivos de configuración, deben colocarse en / usr / local / etc, ya que / etc es para archivos de configuración de paquetes automáticos y otros programas del sistema.

El lugar correcto para sus funciones compartidas es / usr / local / share (/ usr / share es para archivos compartidos de paquetes automáticos). Todos los archivos diseñados para ser de solo lectura e independientes de la arquitectura pertenecen a / usr / share o / usr / local / share (si son propios de paquetes "automáticos" o "manuales").

/ usr / lib es para bibliotecas binarias dinámicas y estáticas (.so o .a), y no para bibliotecas / funciones "interpretadas".

Por lo general, los intérpretes tienen diferentes subcarpetas en / etc / share / para cada versión, y dentro de cada carpeta de versión, diferentes carpetas para scripts, configuraciones regionales, pruebas, muestras, etc.

Si algún día crea un repositorio oficial para su paquete healthchecks, puede migrar sus contenidos / usr / local / healthchecks a / usr / healthchecks y / etc / healthchecks.

Peregring-lk
fuente
2
Seguí adelante y eliminé mi respuesta porque 1) la suya cubre el tema lo suficientemente bien y 2) libexectécnicamente aún no forma parte del FHS. Está presente en el borrador 3.0 y en el Resumen de Redhat del FHS , pero técnicamente aún no forma parte del FHS. (Básicamente, úsalo)
Andrew B
1

Generalmente trato de mantener cosas específicas del sitio fuera de estas áreas reservadas del sistema. Puede considerar usar su propia jerarquía de directorios de nivel superior, ya que cuando usa áreas del sistema, los archivos especiales del sitio pueden perderse u olvidarse fácilmente durante la evolución del sistema. Otra posibilidad podría ser / usr / local / etc .....

mdpc
fuente