Standard di gerarchia dei filesystem - Dove mettere le funzioni reperibili?


9

Ho alcuni script bash che eseguono i controlli di sistema. Questi script provengono da opzioni di configurazione da un file / etc / healthchecks / config.

Insieme al file di configurazione, ho un file di funzioni condiviso. Gli script dovrebbero essere in grado di originare quel file ed eseguire le relative funzioni.

Basato sullo standard di gerarchia dei filesystem, dove devo inserire il file delle funzioni condivise? Non è una configurazione, quindi non sembra appartenere a / etc, ma non viene eseguito, quindi / usr / bin sembra errato. Forse / usr / lib?

Risposte:


7

Dovresti mettere i tuoi healthcheckseseguibili in / usr / local / bin o in / opt / bin. Se vedi la tua cartella / opt è vuota, significa che la tua distribuzione Linux non la usa. Quindi, il posto adatto sarebbe / usr / local.

/ usr / local e / opt sono dove deve essere inserito ogni pacchetto / programma "manuale". / usr è per i pacchetti gestiti dai gestori dei pacchetti (ad esempio, dpkg). / opt è il "posto standard" per i pacchetti manuali secondo FHS, ma le distribuzioni debian usano invece / usr / local.

Per i file di configurazione, devono essere posizionati su / usr / local / etc, poiché / etc è per i file di configurazione di pacchetti automatici e altri programmi di sistema.

Il posto corretto per le tue funzioni condivise è quindi / usr / local / share (/ usr / share è per i file condivisi di pacchetti automatici). Ogni file progettato per essere di sola lettura e indipendente dall'architettura appartiene a / usr / share o / usr / local / share (se sono di proprietà di pacchetti "automatici" o "manuali").

/ usr / lib è per librerie binarie dinamiche e statiche (.so o .a) e non per librerie / funzioni "interpretate".

Di solito, gli interpreti hanno sottocartelle diverse in / etc / share / per ogni versione e all'interno di ogni cartella di versione, cartelle diverse per script, impostazioni locali, test, esempi e così via.

Se un giorno crei un repository ufficiale per il tuo pacchetto healthchecks, puoi migrare i contenuti / usr / local / healthchecks su / usr / healthchecks e / etc / healthchecks.


2
Sono andato avanti e ho eliminato la mia risposta perché 1) la tua copre abbastanza bene l'argomento e 2) libexectecnicamente non fa ancora parte dell'FHS. È presente nella bozza 3.0 e nella panoramica di Redhat sull'FHS , ma non è ancora tecnicamente parte dell'FHS. (usalo se vuoi, in pratica)
Andrew B,

1

In genere cerco di mantenere le cose specifiche del sito al di fuori di queste aree di sistema riservate. È possibile prendere in considerazione l'utilizzo della propria gerarchia di directory di livello superiore come quando si utilizzano aree di sistema speciali file di siti che possono essere facilmente persi o dimenticati durante l'evoluzione del sistema. Un'altra possibilità potrebbe essere / usr / local / etc .....

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.