關於 /usr 和 /usr/local 的討論
應該把程式安裝在 /usr還是 /usr/local?
對於一個以LFS為基礎的系統來說,這是一個沒有明確答案的問題。
在傳統的unix系統中,/usr通常只包含系統發行時自帶的程式,而/usr/local則是本地系統管理員用來自由新增程式的目錄。這裡有一條嚴厲而牢固的規則:除非在裡面建立目錄,unix發行版不得使用/usr/local 。
對於Linux發行版,如 RedHat, Debian 等等,一個可能的規定是:/usr目錄只能由發行版的軟體包管理工具負責管理,而對/usr/local卻沒有這樣做。正是因為採用這種方式,軟體包管理工具的資料庫才能知道在/usr目錄內的每一個檔案。
LFS的使用者是自己建立系統的,所以能自己決定系統檔案和使用者檔案的放置方式。因此,應該按照有利於系統管理員使用的方式作出選擇。這裡有幾個把檔案安裝到/usr
-
如果網路上的計算機都執行LFS或者是混合使用LFS和其它linux發行版,所有連網計算機共用的軟體應該安裝在/usr/local內。這樣可以通過NFS檔案系統共享該目錄或者從一個伺服器上鏡象過來。此時local表示本地伺服器提供軟體。
-
如果網路上的計算機都運行同樣的LFS系統,/usr/local應該安裝各臺計算機之間不相同的軟體。這時local表示本地計算機提供軟體。
-
如果你在一臺計算機上同時安裝了幾個linux發行版,並希望在某個目錄存放它們共享的軟體,這時/usr/local目錄就能發揮作用了。
-
或者你想要經常重建LFS系統,但又希望把不想每次重複編譯的軟體存放在某處,你也可以把軟體安裝在/usr/local
一些人會問為什麼不使用你自己的目錄樹,也就是使用/usr/site 而不是 /usr/local?
沒有什麼能阻止你,確實可以在很多地方建立自己的目錄樹,但這使安裝新軟體更加麻煩。自動化的安裝程式通常要到/usr或/usr/local目錄下尋找所依賴的檔案,如果要找的檔案不在/usr目錄裡面,除非你指定目錄讓安裝程式查詢所依賴的檔案,安裝可能會失敗。
那麼在BLFS中軟體的安裝位置在那裡?
除非特別宣告,所有BLFS中的軟體都安裝在/usr目錄下。也有一些檔案被放在/usr/local目錄下,但它們只是文件並且有足夠的理由這樣做。這些例外的情況都會在本書中得到很好的說明,如果發現有不對的地方,請告訴我們!