Configuration
配置倫理(美學):/etc vs $HOME
好的,這可能不是一個非常具體的問題,並且可能受制於口味,但我正在努力做到這一點,所以就這樣吧。
我有一台電腦。這台電腦上有 linux(感謝上帝)。具體來說是 Arch Linux(使用
awesome
wm)。我是這台電腦上的單個使用者。至於好的做法,我設置了兩個使用者:
root
使用者和日常romeovs
使用者。這樣我只在需要時使用權限(sudo
例如使用)。多年來,我一直在推銷我的軟體套件,在這台電腦上添加了一堆應用程序。值得注意的是:
vim
,git
,mpc
,mutt
,calcurse
,ufw
, …現在問題來了:我使用哪些應用程序的配置文件?所有這些都提供了一個
/etc
基於 -based 的全域配置文件,它影響所有使用者,以及一個本地~/.config
(或者,可悲的是~/
)配置選項。我一直使用本地配置設置,因為這感覺更自然。但隨著我對我的電腦越來越熟悉,我覺得這在某種程度上缺乏優雅。這種方法的反面是:
- 切換到
root
使用者時的差異,即使使用sudo
(例如使用時vim
)- 並不總是有效,例如,當從 arch linux
DEAMONS
陣列載入守護程序時,它們由root
使用者執行,因此不會獲取本地使用者配置。- 主要
$HOME
目錄混亂。可悲的是,很少有應用程序遵循這一$XDG_CONFIG_HOME
理念。好處是:
root
stuff 是本地的,感覺更像是在和之間劃分權限romeovs
。- 快速輕鬆地訪問文件。無需
sudo
編輯它們。- 更容易
git
跟踪配置文件。- 不知何故感覺更安全:使用者可以在不影響機器全域設置的情況下搞砸事情。
- 它更像是“a-package-update-may-overwite-my-config”-proof
讓我們具體一點:
在單使用者機器上拆分配置的事實標準是什麼,特別是對於系統維護人員(單使用者)?
有一天,您要更換您的電腦,或為其他人(例如家庭成員)提供您電腦上的帳戶。
- 如果您想在下一台電腦上保留設置,請將其放在您的主目錄中。
- 如果其他人可能想要不同的設置,請將其放在您的主目錄中。
- 如果設置依賴於電腦而不依賴於使用者,請將其放入
/etc
.您反對將配置文件放在主目錄中的論點並沒有真正成立:
sudo
保留HOME
環境變數(除非您告訴它不要這樣做)。因此,您的程序將繼續從您的主目錄中讀取它們的設置。- 守護程序不應該讀取您的個人設置。守護程序通常通過 中的文件配置
/etc
,而不是通過環境變數或通過您的主目錄中的文件。$HOME
應該有很多點文件。這就是為什麼ls
不顯示它們。