Linux中國

NixOS 系列 #3:在 NixOS 中安裝和刪除軟體包

NixOS 中的打包系統是它最強大的地方。Nix 軟體包管理器使用的語法與 aptdnf 和其他軟體包管理器大不相同。

這也是 人們應該嘗試使用 NixOS 的原因之一

在本指南中,我將分享兩種在 NixOS 上安裝和刪除軟體包的方法:

  • 使用 Nix 軟體包管理器
  • 使用 configuration.nix 配置文件

⚠️ 使用 Nix 軟體包管理器,你只能安裝軟體包,而不能安裝 OpenSSH 或 Plex 伺服器等服務。對於服務的安裝,你必須使用 Nix 配置文件。

要安裝任何軟體包,必須知道它的確切名稱,為此,我將從如何在 NixOS 中搜索軟體包開始。

搜索軟體包

要尋找軟體包,你可以使用它的 網頁搜索

你可以使用如下步驟:

  • 在搜索欄中輸入軟體包的名稱
  • 選擇適當的軟體包(從給出的描述中決定)
  • 點擊 「nix-env」 標籤頁
  • 複製 NixOS 命令(第一條)

例如,如果我想要 librewolf 包,我將執行以下操作:

使用 Nix 軟體包管理器的網路搜索尋找軟體包

你也可以通過終端做同樣的事情。

要使用終端搜索軟體包,你可以按照給定的命令語法進行:

nix-env -qaP --description [軟體包名稱]

例如,在這裡,我搜索了 librewolf

使用終端搜索 NixOS 中的軟體包

你必須複製輸出的第一行,因為那是你需要安裝的軟體包的名稱。

在這裡它是 nixos.librewolf

是的,它聽起來可能沒有像使用 APT 或 DNF 時軟體包名字那麼方便。但是,我認為這並不是大問題。

一些妥協或許會換來一些好處?

在 NixOS 中安裝一個軟體包

要安裝一個軟體包,你所要做的就是使用以下命令語法:

nix-env -iA [軟體包名稱]

而且,如果你使用網路搜索來尋找軟體包,你就已經有了安裝所需的確切命令。

所以,假設我想安裝 `librewolf',我將使用以下命令:

nix-env -iA nixos.librewolf

如果你想進行全系統的安裝(讓每個用戶都能使用這個包),用 sudo 執行安裝命令:

sudo nix-env -iA nixos.librewolf

就是這樣!你將很快安裝好你喜歡的軟體包。

在 NixOS 中卸載一個軟體包

要刪除一個軟體包,你可以參考下面的命令語法:

nix-env --uninstall [軟體包名稱]

因此,如果我必須刪除 librewolf 包,我必須使用以下命令:

nix-env --uninstall librewolf

如果你仔細注意,我使用了 librewolf 而不是 nixos.librewolf 來安裝。

這意味著你在刪除軟體包時要跳過 nixos 部分,這使事情變得簡單而快速。

在 NixOS 中安裝服務

正如我前面提到的,你不能使用 Nix 軟體包管理器來安裝像 OpenSSH、Plex 伺服器、Flatpak 等服務。

從搜索服務到安裝過程,都與你上面看到的不同。

所以讓我先說說如何 搜索服務

  • 要搜索服務,請前往 Nix 軟體包搜索 網頁
  • 選擇 「 NixOS 選項 NixOS options 」(頁面頂部菜單行的第三個選項)
  • 輸入你要找的服務的名稱
  • 複製服務的名稱

例如,在這裡,我正在搜索 OpenSSH 服務。

搜索 NixOS 中的 OpenSSH 服務

一旦你找到了這個名字,用下面的命令打開 configuration.nix 文件:

sudo nano /etc/nixos/configuration.nix

並在行末添加服務的名稱(在 } 之前),如下:

[service_name] = true;

由於 我想啟用 OpenSSH,我將添加以下內容:

services.openssh.enable = true;

在 NixOS 上啟用 OpenSSH

一旦你在配置文件中添加了服務,保存修改並退出 Nano 文本編輯器。

要啟用該服務,請重建配置文件,並使用以下命令切換到所做的更改:

sudo nixos-rebuild switch

這就行了,你已經啟用了該服務。

從 NixOS 卸載服務

要卸載一個服務,你所要做的就是在 configuration.nix 文件中刪除或注釋該服務的一行。

因此,首先,用以下命令打開配置文件:

sudo nano /etc/nixos/configuration.nix

尋找服務,並刪除這一行或用 # 注釋掉:

從 NixOS 刪除服務

通過添加註釋 #,我忽略了 OpenSSH 服務的載入,因為我不再需要它在我的系統上。

保存修改並退出文本編輯器。

最後,重建配置文件並進行切換:

sudo nixos-rebuild switch

使用 Nix 配置文件安裝軟體包

配置文件可以讓你 方便地一次性管理軟體包

要使用 Nix 配置文件安裝軟體包,你必須在配置文件中輸入軟體包的名稱、重建,然後切換到配置文件,就可以了。

首先,打開 configuration.nix 文件。

sudo nano /etc/nixos/configuration.nix

如果你想 為一個特定的登錄用戶安裝軟體包,將軟體包的名稱添加到用戶的配置文件中。

用戶配置文件看起來像這樣:

users.users.sagar = {
    isNormalUser = true;
    description = "Sagar";
    extraGroups = [ "networkmanager" "wheel" ];
    packages = with pkgs; [
      firefox
    ];
  };

當然,它將顯示你的用戶名而不是 sagar

你應該使用如下語法來添加軟體包的名稱:

packages = with pkgs; [
  軟體包名稱
  ]; 

所以我們假設我也想安裝 Thunderbird,那麼我將添加它的名字,如下所示:

使用 Nix 配置文件在 NixOS 中安裝一個包

你必須在方括弧內添加所有的軟體包名稱,不要用逗號。它必須像截圖中描述的那樣一個軟體一個新的行。

但是如果你想在整個系統中安裝這個包,那麼你必須在 environment.systemPackages 下添加包的名字,比如:

environment.systemPackages = with pkgs; [
  軟體包名稱
];

使用 Nix 配置文件在 NixOS 中全系統安裝軟體包

一旦你完成了在系統配置文件或用戶配置文件,甚至兩者中添加所需軟體包的名稱,你將需要按照同樣的命令來完成安裝:

sudo nixos-rebuild switch

這樣就可以了!

使用 Nix 配置文件刪除軟體包

要刪除軟體包,你所要做的就是按照給定的簡單步驟進行:

  • 打開 Nix 配置文件
  • 刪除或注釋掉軟體包的名稱
  • 重新構建配置並進行切換

所以,讓我們從第一步開始(打開配置文件):

sudo nano /etc/nixos/configuration.nix

接下來,注釋掉用戶配置文件或系統配置文件中的包的名稱:

在 NixOS 上使用 Nix 配置文件刪除包

保存更改並退出配置文件。

最後,重建配置文件,並做一個切換來刪除包:

sudo nixos-rebuild switch

這是這樣!

? 目前,還沒有官方的 GUI 工具來幫助你安裝/刪除軟體包。你可能會發現一些由社區開發的項目,如 nix-guinix42b,但它們不再被維護或僅僅處於早期開發階段。

接下來...

我希望你喜歡閱讀 NixOS 系列,就像我寫它一樣。

在下一篇中,我將強調一些在你安裝 NixOS 後需要馬上做的重要事情。

如果你認為我遺漏了什麼或有其他建議,請在評論中告訴我。

via: https://itsfoss.com/nixos-package-management/

作者:Sagar Sharma 選題:lkxed 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國