Fedora 40 計劃統一/usr/bin 和/usr/sbin
Phoronix 報告稱,”為Fedora 40 提交的最新變更提案之一是統一其/usr/bin 和/usr/sbin 位置”。”這是一項針對Fedora Linux 的變更建議…”Fedora 專案維基頁面上強調。”作為變更流程的一部分,建議將公開發布,以接收社區反饋。只有獲得Fedora 工程指導委員會的批准,該提議才會實施。”
修改建議解釋:
“/usr/sbin目錄成為bin的符號連結意味著/usr/bin/foo和/usr/sbin/foo等路徑指向同一個地方。/bin 和/sbin 已經是/usr/bin 和/usr/sbin 的符號鏈接,因此/bin/foo 和/sbin/foo 實際上也指向同一個地方。/usr/sbin 將從預設的$PATH 中移除”。
多年前,Fedora 合併了/bin 和/usr/bin,作為最後一步,他們希望統一/usr/bin 和/usr/sbin。
修改提案認為,透過這項修改,”Fedora 將與其他發行版更加相容”。
– 我們有/sbin/ip,而Debian 有/bin/ip
– 我們有/bin/chmem 和/bin/isosize,而Debian 有/sbin/chmem 和/sbin/isosize
– 我們還有/sbin/{addpart,delpart,lnstat,nstat,partx,ping,rdma,resizeepart,ss,udevadm,update-alternatives},而Debian 則將其放在/bin 等下。
– Fedora 與幾年前合併的Arch 更加兼容。
Fedora 專案維基上的提案提供了以下摘要:
/bin 和/sbin 之間的分割並無用處,也未被使用。最初的拆分是為了將”重要”的二進位檔案靜態連結到/sbin,以便用於緊急救援操作。顯然,我們現在已經不做靜態連結了。後來,拆分的目的改為隔離只有管理者才能使用的”重要”二進位。雖然這在理論上似乎很有吸引力,但實際上很難對程式進行這樣的分類,普通用戶經常會從/sbin 中呼叫程式。大多數需要root 權限才能進行某些操作的程序,在無權限的情況下也能使用。即使需要權限,通常也是動態取得的,例如使用polkit。多年來,使用者的預設$PATH 設定都包含這兩個目錄。隨著systemd 的出現,這種做法變得更加系統化:systemd 會為所有使用者和服務設定包含這兩個目錄的$PATH。因此,一般來說,所有使用者和程式都能找到這兩套二進位。
一般來說,所有使用者會話和服務的$PATH 都有兩個目錄,因此這種分割實際上沒有任何作用。它的主要作用是,當人們需要使用絕對路徑而又猜錯了目錄時,就會產生混亂。其他發行版會把一些二進位檔案放在另一個目錄中,因此絕對路徑通常無法移植。此外,使用者很容易在$PATH 中把/sbin 放在/bin 之前,而管理者也很容易在$PATH 中把/bin 放在/sbin 之前,從而造成混亂。如果放棄這項功能,系統就會變得簡單一些,這對於不了解分割歷史的新用戶來說尤其有用。