/usr/libexec 的用途是什麼?

/usr/libexec 的用途是什麼?

可執行檔儲存在/usr/libexec類別 Unix 系統上。FHS 表示(部分4.7. /usr/libexec : Binaries run by other programs (optional)"

/usr/libexec包括不打算由使用者或 shell 腳本直接執行的內部二進位。應用程式可以使用 下的單一子目錄/usr/libexec

在 macOS 上,啟動後立即rootless-init呼叫的程式launchd儲存在/usr/libexec.

/usr/libexec當它是可以儲存在/usr/binor中的獨立可執行檔時,為什麼要儲存在 中/usr/sbininit其他不由shell腳本直接呼叫的程式也儲存在[/usr]/{bin,sbin}.

答案1

這是一個可支援性的問題 - 平台提供者從多年的經驗中了解到,如果您PATH默認放入二進位文件,人們將要開始依賴他們的存在,並且將要取決於他們支持的具體論點和選項。

相較之下,如果放入某些內容,/usr/libexec/則明確表明它被視為內部實作細節,並且不正式支援作為最終用戶直接呼叫它。

無論如何,您可能仍然決定直接存取這些二進位文件,如果未來的升級破壞了您正在使用的私有接口,您將不會獲得平台提供者的任何支援或同情。

答案2

OS X 不遵循FHS標準。它有自己的檔案系統層次結構(類似 FreeBSD 檔案系統層次結構)。手冊頁hier狀態:

libexec/- 系統守護程式和系統實用程式(由其他程式執行)

答案3

libexec適用於由其他程式執行的系統守護程式和系統實用程式。也就是說,放入此命名空間目錄中的二進位檔案旨在供其他程式使用,而不是由使用者直接執行。

答案4

我認為它比init- 這個想法更新,就像它所說的那樣,擁有/usr/lib你永遠不會期望在任何人的$PATH.

相關內容