Filesystem Hierarchy Standard - Di mana harus meletakkan fungsi yang dapat sumber?

9

Saya memiliki beberapa skrip bash yang menjalankan pemeriksaan sistem. Opsi konfigurasi sumber skrip ini dari file / etc / healthchecks / config.

Bersama dengan file konfigurasi, saya memiliki file fungsi bersama. Script harus dapat sumber file itu dan menjalankan fungsi di dalamnya.

Berdasarkan pada Hierarki Standar Filesystem, di mana saya harus meletakkan file fungsi bersama? Ini bukan konfigurasi, jadi sepertinya bukan milik / etc, tetapi juga tidak dieksekusi sehingga / usr / bin tampaknya salah. Mungkin / usr / lib?

jauh sekaliupormanorman
sumber

Jawaban:

7

Anda harus meletakkan healthchecksfile executable Anda di / usr / local / bin atau di / opt / bin. Jika Anda melihat folder / opt Anda kosong, berarti distribusi linux Anda tidak menggunakannya. Jadi, tempat yang cocok adalah / usr / lokal.

/ usr / local dan / opt adalah tempat setiap paket / program "manual" harus ditempatkan. / usr adalah untuk paket yang dikelola oleh manajer paket (mis., dpkg). / opt adalah "tempat standar" untuk paket manual menurut FHS, tetapi distro debian menggunakan / usr / local sebagai gantinya.

Untuk file konfigurasi, mereka harus ditempatkan di / usr / local / etc, karena / etc adalah untuk file konfigurasi paket otomatis dan program sistem lainnya.

Maka tempat yang tepat untuk fungsi bersama Anda adalah / usr / local / share (/ usr / share adalah untuk file bersama dari paket otomatis). Setiap file yang dirancang untuk hanya-baca dan independen dari arsitektur milik / usr / share atau / usr / local / share (jika mereka dimiliki oleh paket "otomatis" atau "manual").

/ usr / lib adalah untuk perpustakaan biner dinamis dan statis (.so atau .a), dan bukan untuk perpustakaan / fungsi "ditafsirkan".

Biasanya, interpreter memiliki subfolder yang berbeda di / etc / share / untuk setiap versi, dan di dalam setiap folder versi, folder yang berbeda untuk skrip, lokal, tes, sampel, dan sebagainya.

Jika suatu hari Anda membuat repositori resmi untuk paket healthchecksAnda, Anda dapat memigrasi konten / usr / local / cek kesehatan Anda ke / usr / check kesehatan dan / etc / check kesehatan.

Peregring-lk
sumber
2
Saya melanjutkan dan menghapus jawaban saya karena 1) topik Anda cukup baik, dan 2) secara libexecteknis belum menjadi bagian dari FHS. Ini hadir dalam draft 3.0 dan Tinjauan Redhat tentang FHS , tetapi secara teknis belum menjadi bagian dari FHS. (gunakan jika Anda mau, pada dasarnya)
Andrew B
1

Saya biasanya mencoba menyimpan hal-hal khusus di luar area sistem yang dicadangkan ini. Anda mungkin mempertimbangkan untuk menggunakan hierarki direktori tingkat atas Anda sendiri karena ketika menggunakan area sistem file situs khusus dapat dengan mudah hilang atau dilupakan selama evolusi sistem. Kemungkinan lain bisa berupa / usr / local / dll .....

mdpc
sumber