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