NixOS 系列 #5:如何在 NixOS 上設置家庭管理員?
在發(fā)表這篇文章之前,我解釋了如何為一個單用戶系統(tǒng) ??在 NixOS 中安裝和刪除軟件包??。
但是,如果你正在供多個用戶使用,有一個很好的方法來分別滿足每個用戶的需求。
在本指南中,我將指導你如何在 NixOS 上設置一個家庭管理員,以及如何使用它來安裝軟件包。
如果你是新讀者,本系列中討論的一些資源包括:
在 NixOS 上設置家庭管理員
在本指南中,我將指導你通過 2 種方式來設置家庭管理員:
- 獨立的家庭管理員(使用單獨的配置文件)
- 作為一個 NixOS 模塊(在 ?
?configuration.nix?
? 文件中使用它)
那么,讓我們從獨立方式開始。
獨立安裝的家庭管理員
如果你使用的是 NixOS 的穩(wěn)定頻道,你可以使用以下命令來配置家庭管理器:
在編寫本指南時,穩(wěn)定版是 ??22.11?
?。
而 如果你在一個不穩(wěn)定的頻道上,請使用以下命令:
無論你使用穩(wěn)定版還是不穩(wěn)定版,下面的步驟都是一樣的。
一旦完成,更新頻道:
最后,使用下面的命令來安裝家庭管理員:
??? 在安裝時,可能會出現(xiàn)以下錯誤:
安裝家庭管理員時出現(xiàn)構建錯誤
重新啟動你的系統(tǒng)并再次使用安裝命令,它將開始安裝。
一旦完成,它將顯示獨立安裝的家庭管理員的位置:
家庭管理器在NixOS中的位置
將家庭管理員安裝為 NixOS 模塊
?? 如果你選擇將家庭管理員作為 NixOS 模塊使用,你將需要 sudo 權限。
如果你在一個穩(wěn)定的頻道上(在寫本文的時候,是 ??22.11?
?),你可以使用下面的命令來添加家庭管理員的穩(wěn)定頻道:
而 如果你使用的是不穩(wěn)定通道或主通道,則使用以下命令:
一旦你使用上面的任何一條命令完成了添加頻道的工作,就用下面的方法更新頻道:
接下來,用以下方法打開 ??configuration.nix?
? 文件:
并在 ??imports []?
? 中添加以下一行:
將家庭管理員安裝為 NixOS 模塊
現(xiàn)在,跳到該行的末尾,在 ??}?
? 前添加以下內(nèi)容:
NixOS 配置文件中的家庭管理員模塊的格式
上面這一行是為了方便安裝和刪除軟件包而添加的,我接下來會告訴你。
現(xiàn)在,??保存修改并退出 Nano?? 文本編輯器。
接下來,重建配置,并做一個切換:
但如果你使用的是穩(wěn)定版,并使用上述命令,就會出現(xiàn)以下錯誤:
??? 錯誤: 選項 ?
?home-manager.users.user.home.stateVersion?
? 被使用但沒有定義:
錯誤: 選項 已被使用但未被定義。
要解決這個問題,你必須在你的家庭管理器塊中添加 ??home.stateVersion?
?。
在寫這篇文章時,我正在運行 22.11,所以整個家庭管理員塊看起來像這樣:
如何解決 選項被使用但沒有定義。
保存修改,按 ??Ctrl+O?
?,按回車鍵和 ??Ctrl+X?
? 退出 Nano 文本編輯器。
現(xiàn)在,試著重建配置并再次進行切換,應該可以解決問題。
如何在 NixOS 上使用家庭管理員安裝軟件包
現(xiàn)在你已經(jīng)安裝了家庭管理員,如何用它來安裝軟件包:
使用獨立安裝的家庭管理員
首先,用下面的方法打開配置文件:
跳到行末,在 ??}?
? 前添加以下代碼塊:
現(xiàn)在,你所要做的就是在這兩個大括號之間寫上軟件包的名稱。
例如,如果我想安裝 ??htop?
?,我將得輸入以下內(nèi)容:
是的,你通常要在軟件包的名稱后面加上 ??pkgs.?
?。
但是,如果你想在每次安裝新包時不使用 ??pkgs.?
?,可以改變代碼塊的語法,如圖所示:
而現(xiàn)在,你不再需要在每次安裝時使用 ??pkgs.?
?:
例如,在這里,我想安裝 ??htop?
?、??firefox?
?和 ??libreoffice?
?,所以我的 ??home?
? 塊會看起來像這樣:
在 NixOS 上使用家庭管理員安裝多個軟件包
一旦你完成了添加你喜歡的軟件包,保存配置文件并使用以下命令來安裝軟件包:
使用 NixOS 模塊方式
首先,用以下命令打開 ??configuration.nix?
? 文件:
在配置部分,我已經(jīng)添加了家庭管理員塊,所以剩下的就是在 ??home.packages = [ ];?
? 里面添加軟件包的名稱,格式如圖所示:
??我已經(jīng)在上節(jié)提到軟件包名稱前你可以使用 ?
?pkgs.?
? 。
例如,如果我想 ??安裝 htop??、Firefox 和 LibreOffice,那么我將添加:
然后我的家庭管理員塊會看起來像這樣:
作為 NixOS 模塊在家庭管理員中安裝多個軟件包
現(xiàn)在,保存修改并退出文本編輯器。
接下來,重建配置并使用以下命令進行切換:
這是這樣!軟件包將很快被安裝。
這就結束了
我認為你應該選擇獨立安裝,因為你不需要使用超級用戶的權限。另外,如果你運行一個有多個用戶的系統(tǒng),為不同的用戶擁有不同的配置文件是相當方便的。
因此,除非你想用一個文件來實現(xiàn)各種目的,否則我認為沒有其他理由使用模塊選項。
就這樣,我結束了 NixOS 的初學者系列。我希望它能給你一個足夠好的平臺來熟悉這個獨特的 Linux 發(fā)行版。
?? 你喜歡 NixOS 系列文章嗎?對于 NixOS 的初學者,我們還有什么要介紹的嗎?請?zhí)峁┠愕膶氋F意見。