Hierarchia systemu plików Standard - gdzie umieścić funkcje źródłowe?

9

Mam kilka skryptów bash uruchamiających kontrole systemu. Te skrypty pobierają opcje konfiguracji z pliku / etc / healthchecks / config.

Wraz z plikiem konfiguracyjnym mam plik funkcji wspólnych. Skrypty powinny mieć możliwość pozyskiwania tego pliku i uruchamiania w nim funkcji.

Gdzie powinienem umieścić plik funkcji współdzielonych w oparciu o standard hierarchii systemu plików? To nie jest konfiguracja, więc nie wygląda na to, aby należała do / etc, ale nie jest również wykonywana, więc / usr / bin wydaje się niepoprawny. Może / usr / lib?

ogromnie superorman
źródło

Odpowiedzi:

7

Powinieneś umieścić swoje healthcheckspliki wykonywalne w / usr / local / bin lub w / opt / bin. Jeśli widzisz, że twój folder / opt jest pusty, oznacza to, że twoja dystrybucja linuksowa go nie używa. Odpowiednim miejscem byłoby / usr / local.

/ usr / local i / opt to miejsce, w którym należy umieścić każdy pakiet / program „ręczny”. / usr jest dla pakietów zarządzanych przez menedżerów pakietów (tj. dpkg). / opt jest „standardowym miejscem” dla ręcznych pakietów według FHS, ale dystrybucje debiana używają / usr / local.

W przypadku plików konfiguracyjnych należy je umieścić w katalogu / usr / local / etc, ponieważ / etc dotyczy plików konfiguracyjnych automatycznych pakietów i innych programów systemowych.

Prawidłowe miejsce dla twoich funkcji wspólnych to / usr / local / share (/ usr / share jest dla współdzielonych plików automatycznych pakietów). Każdy plik przeznaczony do odczytu i niezależny od arquitecture należy do / usr / share lub / usr / local / share (jeśli są one własnością pakietów „automatycznych” lub „ręcznych”).

/ usr / lib jest przeznaczony do dynamicznych i statycznych bibliotek binarnych (.so lub .a), a nie do „interpretowanych” bibliotek / funkcji.

Zwykle tłumacze mają różne podfoldery w / etc / share / dla każdej wersji i wewnątrz każdego folderu wersji, różne foldery na skrypty, ustawienia regionalne, testy, próbki i tak dalej.

Jeśli pewnego dnia utworzysz oficjalne repozytorium dla swojego pakietu healthchecks, możesz migrować zawartość / usr / local / healthchecks do / usr / healthchecks i / etc / healthchecks.

Peregring-Łk
źródło
2
Poszedłem dalej i usunąłem swoją odpowiedź, ponieważ 1) twój dość dobrze omawia ten temat, i 2) libexectechnicznie nie jest jeszcze częścią FHS. Jest obecny w wersji 3.0 i Omówieniu FHS Redhata , ale technicznie nie jest jeszcze częścią FHS. (używaj go, jeśli chcesz)
Andrew B
1

Zasadniczo staram się trzymać rzeczy specyficzne dla witryny poza tymi zarezerwowanymi obszarami systemu. Możesz rozważyć użycie własnej hierarchii katalogów najwyższego poziomu, ponieważ podczas korzystania z obszarów systemowych specjalne pliki witryn można łatwo zgubić lub zapomnieć podczas ewolucji systemu. Inną możliwością może być / usr / local / etc .....

mdpc
źródło