Apa tujuan dari / usr / libexec?

28

File executable disimpan dalam /usr/libexecsistem mirip Unix. FHS mengatakan (bagian 4.7. /usr/libexec : Binaries run by other programs (optional)":

/usr/libexectermasuk binari internal yang tidak dimaksudkan untuk dieksekusi langsung oleh pengguna atau skrip shell. Aplikasi dapat menggunakan subdirektori tunggal di bawah /usr/libexec.

Di Mac OS X, rootless-initsebuah program yang dipanggil launchdsegera setelah boot, disimpan di /usr/libexec. Mengapa itu disimpan /usr/libexecketika itu adalah executable mandiri yang bisa disimpan dalam /usr/binatau /usr/sbin? initdan program lain yang tidak dipanggil langsung oleh skrip shell juga disimpan dalam folder seperti [/usr]/{bin,sbin}.

Melab
sumber

Jawaban:

14

Ini adalah pertanyaan tentang kemampuan dukungan - penyedia platform telah belajar dari pengalaman bertahun-tahun bahwa jika Anda meletakkan biner PATHsecara default, orang akan bergantung pada keberadaan mereka di sana, dan akan bergantung pada argumen dan opsi spesifik yang mereka dukung.

Sebaliknya, jika ada sesuatu yang dimasukkan /usr/libexec/itu merupakan indikasi yang jelas bahwa itu dianggap sebagai detail implementasi internal, dan menyebutnya langsung sebagai pengguna akhir tidak didukung secara resmi.

Anda tetap dapat memutuskan untuk mengakses binari-binari itu secara langsung, Anda tidak akan mendapatkan dukungan atau simpati dari penyedia platform jika pemutakhiran di masa depan akan merusak antarmuka pribadi yang Anda gunakan.

ncoghlan
sumber
7

Saya pikir ini lebih baru daripada init- idenya adalah, seperti dikatakan, memiliki executable (sehingga mereka tidak boleh berada di /usr/lib) yang Anda tidak akan pernah harapkan ada di siapa pun $PATH.

Aaron D. Marasco
sumber
3

OS X tidak mengikuti standar FHS. Ini memiliki hierarki sistem file sendiri (mirip dengan hierarki sistem file FreeBSD). Halaman manual hiermenyatakan-

libexec/ system daemons & system utilities (executed by other programs)

fd0
sumber
3

libexecdimaksudkan untuk daemon sistem dan utilitas sistem yang dijalankan oleh program lain. Artinya, binari yang dimasukkan ke dalam direktori namespaced ini dimaksudkan untuk konsumsi program lain, dan tidak dimaksudkan untuk dijalankan secara langsung oleh pengguna.

Pengusir setan
sumber