Dateisystem-Hierarchie-Standard - Wo werden Sourcing-Funktionen abgelegt?

9

Ich habe ein paar Bash-Skripte, die Systemprüfungen ausführen. Diese Skripte beziehen Konfigurationsoptionen aus einer Datei / etc / healthchecks / config.

Zusammen mit der Konfigurationsdatei habe ich eine Datei mit gemeinsam genutzten Funktionen. Die Skripte sollten in der Lage sein, diese Datei zu beschaffen und die darin enthaltenen Funktionen auszuführen.

Wo soll ich basierend auf dem Dateisystemhierarchiestandard die Datei mit den gemeinsam genutzten Funktionen ablegen? Es ist keine Konfiguration, daher scheint es nicht in / etc zu gehören, aber es wird auch nicht ausgeführt, sodass / usr / bin falsch erscheint. Vielleicht / usr / lib?

weit überlegen
quelle

Antworten:

7

Sie sollten Ihre healthchecksausführbaren Dateien in / usr / local / bin oder in / opt / bin ablegen. Wenn Sie sehen, dass Ihr Ordner / opt leer ist, bedeutet dies, dass Ihre Linux-Distribution ihn nicht verwendet. Der geeignete Ort wäre also / usr / local.

In / usr / local und / opt muss jedes "manuelle" Paket / Programm abgelegt werden. / usr ist für Pakete, die von Paketmanagern verwaltet werden (dh dpkg). / opt ist der "Standardplatz" für manuelle Pakete gemäß FHS, aber Debian-Distributionen verwenden stattdessen / usr / local.

Für Konfigurationsdateien müssen sie in / usr / local / etc abgelegt werden, da / etc für Konfigurationsdateien von automatischen Paketen und anderen Systemprogrammen gilt.

Der richtige Ort für Ihre freigegebenen Funktionen ist dann / usr / local / share (/ usr / share ist für freigegebene Dateien von automatischen Paketen). Jede Datei, die schreibgeschützt und unabhängig von der Architektur ist, gehört zu / usr / share oder / usr / local / share (wenn sie von "automatischen" oder "manuellen" Paketen besessen werden).

/ usr / lib ist für dynamische und statische Binärbibliotheken (.so oder .a) und nicht für "interpretierte" Bibliotheken / Funktionen.

Normalerweise haben Interpreter unterschiedliche Unterordner in / etc / share / für jede Version und in jedem Versionsordner unterschiedliche Ordner für Skripte, Gebietsschemas, Tests, Beispiele usw.

Wenn Sie eines Tages ein offizielles Repository für Ihr Paket erstellen healthchecks, können Sie den Inhalt von / usr / local / healthchecks nach / usr / healthchecks und / etc / healthchecks migrieren.

Peregring-lk
quelle
2
Ich habe meine Antwort gelöscht, weil 1) Ihre das Thema gut genug abdeckt und 2) libexectechnisch noch nicht Teil der FHS ist. Es ist im 3.0-Entwurf und in Redhats Übersicht über die FHS enthalten , ist aber technisch noch nicht Teil der FHS. (Verwenden Sie es, wenn Sie im Grunde wollen)
Andrew B
1

Ich versuche im Allgemeinen, ortsspezifische Dinge außerhalb dieser reservierten Systembereiche zu halten. Sie können Ihre eigene Verzeichnishierarchie der obersten Ebene verwenden, da bei Verwendung von Systembereichen spezielle Site-Dateien während der Systementwicklung leicht verloren gehen oder vergessen werden können. Eine andere Möglichkeit könnte / usr / local / etc sein .....

mdpc
quelle