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