Path

在配置腳本中硬編碼 /usr/bin/env

  • June 13, 2014

我正在建構一個沒有 /usr 目錄的 Linux 系統。讓工具鏈工作起來非常容易,但我對很多 auto* 腳本感到惱火:configure 等通常似乎假設env/usr/bin.

一種解決方法是ln -sv .. /usr在建構期間執行,但顯然這在美學上沒有吸引力,並且存在路徑/usr洩漏到最終系統中的風險。(生產中會安裝一個網路/usr,我不希望基礎系統知道它的存在。)

我是否錯誤地安裝了我的自動工具,或者這只是配置經常做出的一個令人討厭的假設?我是否因為不投入而破壞了envFHS /usr/bin?(這對我來說不是一個交易破壞者;我已經通過擁有/incand來破壞它/share。)

你可能會覺得/usr不美觀,但這就是宇宙的運作方式。幾乎所有的 Unix 都有/usr/bin/env——據我所知,現存的唯一沒有的 Unix 是 SCO OpenServer,而且它不是一個大的現存的。如果沒有/usr/bin/env,您不僅違反了 FHS,還違反了一個極為普遍的慣例。/usr/bin/env是一個標準位置,即使沒有編寫該標準。它並不是一個可配置的位置:/usr/bin/env它是每個人都可以假設存在的一個位置。

不管你喜不喜歡,解決辦法就是安排擁有/usr/bin/env. 刪除/usr層次結構很好,但如果這樣做,請創建/usr一個指向/.

如果您要/usr通過網路安裝一個,那麼:

  • /usr創建一個包含符號連結的bin -> ../bin目錄。
  • 確保在您掛載的文件系統上/usr,該文件bin/env是指向的符號連結/bin/env或工作env程序。

引用自:https://unix.stackexchange.com/questions/136705