NixOS 系列 #3:在 NixOS 中安裝和刪除軟件包
NixOS 中的打包系統(tǒng)是它最強(qiáng)大的地方。Nix 軟件包管理器使用的語(yǔ)法與 ??apt?
??、??dnf?
? 和其他軟件包管理器大不相同。
這也是 ??人們應(yīng)該嘗試使用 NixOS 的原因之一??。
在本指南中,我將分享兩種在 NixOS 上安裝和刪除軟件包的方法:
- 使用 Nix 軟件包管理器
- 使用 ?
?configuration.nix?
? 配置文件
?? 使用 Nix 軟件包管理器,你只能安裝軟件包,而不能安裝 OpenSSH 或 Plex 服務(wù)器等服務(wù)。對(duì)于服務(wù)的安裝,你必須使用 Nix 配置文件。
要安裝任何軟件包,必須知道它的確切名稱,為此,我將從如何在 NixOS 中搜索軟件包開(kāi)始。
搜索軟件包
要尋找軟件包,你可以使用它的 ??網(wǎng)頁(yè)搜索??。
你可以使用如下步驟:
- 在搜索欄中輸入軟件包的名稱
- 選擇適當(dāng)?shù)能浖◤慕o出的描述中決定)
- 點(diǎn)擊 “nix-env” 標(biāo)簽頁(yè)
- 復(fù)制 NixOS 命令(第一條)
例如,如果我想要 ??librewolf?
? 包,我將執(zhí)行以下操作:
使用 Nix 軟件包管理器的網(wǎng)絡(luò)搜索尋找軟件包
你也可以通過(guò)終端做同樣的事情。
要使用終端搜索軟件包,你可以按照給定的命令語(yǔ)法進(jìn)行:
例如,在這里,我搜索了 ??librewolf?
?:
使用終端搜索 NixOS 中的軟件包
你必須復(fù)制輸出的第一行,因?yàn)槟鞘悄阈枰惭b的軟件包的名稱。
在這里它是 ??nixos.librewolf?
?。
是的,它聽(tīng)起來(lái)可能沒(méi)有像使用 ??APT?? 或 DNF 時(shí)軟件包名字那么方便。但是,我認(rèn)為這并不是大問(wèn)題。
一些妥協(xié)或許會(huì)換來(lái)一些好處?
在 NixOS 中安裝一個(gè)軟件包
要安裝一個(gè)軟件包,你所要做的就是使用以下命令語(yǔ)法:
而且,如果你使用網(wǎng)絡(luò)搜索來(lái)尋找軟件包,你就已經(jīng)有了安裝所需的確切命令。
所以,假設(shè)我想安裝 `librewolf',我將使用以下命令:
如果你想進(jìn)行全系統(tǒng)的安裝(讓每個(gè)用戶都能使用這個(gè)包),用 ??sudo?
? 執(zhí)行安裝命令:
就是這樣!你將很快安裝好你喜歡的軟件包。
在 NixOS 中卸載一個(gè)軟件包
要?jiǎng)h除一個(gè)軟件包,你可以參考下面的命令語(yǔ)法:
因此,如果我必須刪除 ??librewolf?
? 包,我必須使用以下命令:
如果你仔細(xì)注意,我使用了 ??librewolf?
? 而不是 ??nixos.librewolf?
? 來(lái)安裝。
這意味著你在刪除軟件包時(shí)要跳過(guò) ??nixos?
? 部分,這使事情變得簡(jiǎn)單而快速。
在 NixOS 中安裝服務(wù)
正如我前面提到的,你不能使用 Nix 軟件包管理器來(lái)安裝像 OpenSSH、Plex 服務(wù)器、??Flatpak?? 等服務(wù)。
從搜索服務(wù)到安裝過(guò)程,都與你上面看到的不同。
所以讓我先說(shuō)說(shuō)如何 搜索服務(wù)。
- 要搜索服務(wù),請(qǐng)前往 Nix 軟件包搜索 ??網(wǎng)頁(yè)??
- 選擇 “NixOS 選項(xiàng)NixOS options”(頁(yè)面頂部菜單行的第三個(gè)選項(xiàng))
- 輸入你要找的服務(wù)的名稱
- 復(fù)制服務(wù)的名稱
例如,在這里,我正在搜索 OpenSSH 服務(wù)。
搜索 NixOS 中的 OpenSSH 服務(wù)
一旦你找到了這個(gè)名字,用下面的命令打開(kāi) ??configuration.nix?
? 文件:
并在行末添加服務(wù)的名稱(在 ??}?
? 之前),如下:
由于 我想啟用 OpenSSH,我將添加以下內(nèi)容:
在 NixOS 上啟用 OpenSSH
一旦你在配置文件中添加了服務(wù),??保存修改并退出 Nano?? 文本編輯器。
要啟用該服務(wù),請(qǐng)重建配置文件,并使用以下命令切換到所做的更改:
這就行了,你已經(jīng)啟用了該服務(wù)。
從 NixOS 卸載服務(wù)
要卸載一個(gè)服務(wù),你所要做的就是在 ??configuration.nix?
? 文件中刪除或注釋該服務(wù)的一行。
因此,首先,用以下命令打開(kāi)配置文件:
尋找服務(wù),并刪除這一行或用 ??#?
? 注釋掉:
從 NixOS 刪除服務(wù)
通過(guò)添加注釋 ??#?
?,我忽略了 OpenSSH 服務(wù)的加載,因?yàn)槲也辉傩枰谖业南到y(tǒng)上。
保存修改并退出文本編輯器。
最后,重建配置文件并進(jìn)行切換:
使用 Nix 配置文件安裝軟件包
配置文件可以讓你 方便地一次性管理軟件包。
要使用 Nix 配置文件安裝軟件包,你必須在配置文件中輸入軟件包的名稱、重建,然后切換到配置文件,就可以了。
首先,打開(kāi) ??configuration.nix?
? 文件。
如果你想 為一個(gè)特定的登錄用戶安裝軟件包,將軟件包的名稱添加到用戶的配置文件中。
用戶配置文件看起來(lái)像這樣:
當(dāng)然,它將顯示你的用戶名而不是 ??sagar?
?。
你應(yīng)該使用如下語(yǔ)法來(lái)添加軟件包的名稱:
所以我們假設(shè)我也想安裝 ??Thunderbird?
?,那么我將添加它的名字,如下所示:
使用 Nix 配置文件在 NixOS 中安裝一個(gè)包
你必須在方括號(hào)內(nèi)添加所有的軟件包名稱,不要用逗號(hào)。它必須像截圖中描述的那樣一個(gè)軟件一個(gè)新的行。
但是如果你想在整個(gè)系統(tǒng)中安裝這個(gè)包,那么你必須在 ??environment.systemPackages?
? 下添加包的名字,比如:
使用 Nix 配置文件在 NixOS 中全系統(tǒng)安裝軟件包
一旦你完成了在系統(tǒng)配置文件或用戶配置文件,甚至兩者中添加所需軟件包的名稱,你將需要按照同樣的命令來(lái)完成安裝:
這樣就可以了!
使用 Nix 配置文件刪除軟件包
要?jiǎng)h除軟件包,你所要做的就是按照給定的簡(jiǎn)單步驟進(jìn)行:
- 打開(kāi) Nix 配置文件
- 刪除或注釋掉軟件包的名稱
- 重新構(gòu)建配置并進(jìn)行切換
所以,讓我們從第一步開(kāi)始(打開(kāi)配置文件):
接下來(lái),注釋掉用戶配置文件或系統(tǒng)配置文件中的包的名稱:
在 NixOS 上使用 Nix 配置文件刪除包
保存更改并退出配置文件。
最后,重建配置文件,并做一個(gè)切換來(lái)刪除包:
這是這樣!
?? 目前,還沒(méi)有官方的 GUI 工具來(lái)幫助你安裝/刪除軟件包。你可能會(huì)發(fā)現(xiàn)一些由社區(qū)開(kāi)發(fā)的項(xiàng)目,如 ??nix-gui?? 和 ??nix42b??,但它們不再被維護(hù)或僅僅處于早期開(kāi)發(fā)階段。
接下來(lái)...
我希望你喜歡閱讀 NixOS 系列,就像我寫(xiě)它一樣。
在下一篇中,我將強(qiáng)調(diào)一些在你安裝 NixOS 后需要馬上做的重要事情。