NixOS 系列 #3:在 NixOS 中安装和删除软件包

admin 2023年3月21日22:01:39评论16 views字数 3455阅读11分31秒阅读模式
 
NixOS 系列 #3:在 NixOS 中安装和删除软件包 | Linux 中国
导读:NixOS 中的打包系统是它最强大的地方。                                       
NixOS 系列 #3:在 NixOS 中安装和删除软件包本文字数:3674,阅读时长大约:5分钟

NixOS 中的打包系统是它最强大的地方。Nix 软件包管理器使用的语法与 aptdnf 和其他软件包管理器大不相同。

这也是 人们应该尝试使用 NixOS 的原因之一

在本指南中,我将分享两种在 NixOS 上安装和删除软件包的方法:

◈ 使用 Nix 软件包管理器
◈ 使用 configuration.nix 配置文件

⚠️ 使用 Nix 软件包管理器,你只能安装软件包,而不能安装 OpenSSH 或 Plex 服务器等服务。对于服务的安装,你必须使用 Nix 配置文件。

要安装任何软件包,必须知道它的确切名称,为此,我将从如何在 NixOS 中搜索软件包开始。

NixOS 系列 #3:在 NixOS 中安装和删除软件包

搜索软件包

要寻找软件包,你可以使用它的 网页搜索🔗 search.nixos.org

你可以使用如下步骤:

◈ 在搜索栏中输入软件包的名称
◈ 选择适当的软件包(从给出的描述中决定)
◈ 点击 “nix-env” 标签页
◈ 复制 NixOS 命令(第一条)

例如,如果我想要 librewolf 包,我将执行以下操作:

NixOS 系列 #3:在 NixOS 中安装和删除软件包

使用 Nix 软件包管理器的网络搜索寻找软件包

你也可以通过终端做同样的事情。

要使用终端搜索软件包,你可以按照给定的命令语法进行:

  1. nix-env -qaP --description [软件包名称]

例如,在这里,我搜索了 librewolf

NixOS 系列 #3:在 NixOS 中安装和删除软件包

使用终端搜索 NixOS 中的软件包

你必须复制输出的第一行,因为那是你需要安装的软件包的名称。

在这里它是 nixos.librewolf

是的,它听起来可能没有像使用 APT🔗 itsfoss.com 或 DNF 时软件包名字那么方便。但是,我认为这并不是大问题。

一些妥协或许会换来一些好处?

NixOS 系列 #3:在 NixOS 中安装和删除软件包

在 NixOS 中安装一个软件包

要安装一个软件包,你所要做的就是使用以下命令语法:

  1. nix-env -iA [软件包名称]

而且,如果你使用网络搜索来寻找软件包,你就已经有了安装所需的确切命令。

所以,假设我想安装 `librewolf',我将使用以下命令:

  1. nix-env -iA nixos.librewolf

如果你想进行全系统的安装(让每个用户都能使用这个包),用 sudo 执行安装命令:

  1. sudo nix-env -iA nixos.librewolf

就是这样!你将很快安装好你喜欢的软件包。

NixOS 系列 #3:在 NixOS 中安装和删除软件包

在 NixOS 中卸载一个软件包

要删除一个软件包,你可以参考下面的命令语法:

  1. nix-env --uninstall [软件包名称]

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

  1. nix-env --uninstall librewolf

如果你仔细注意,我使用了 librewolf 而不是 nixos.librewolf 来安装。

这意味着你在删除软件包时要跳过 nixos 部分,这使事情变得简单而快速。

NixOS 系列 #3:在 NixOS 中安装和删除软件包

在 NixOS 中安装服务

正如我前面提到的,你不能使用 Nix 软件包管理器来安装像 OpenSSH、Plex 服务器、Flatpak🔗 itsfoss.com 等服务。

从搜索服务到安装过程,都与你上面看到的不同。

所以让我先说说如何 搜索服务

◈ 要搜索服务,请前往 Nix 软件包搜索 网页🔗 search.nixos.org
◈ 选择 “NixOS 选项(NixOS options)”(页面顶部菜单行的第三个选项)
◈ 输入你要找的服务的名称
◈ 复制服务的名称

例如,在这里,我正在搜索 OpenSSH 服务。

NixOS 系列 #3:在 NixOS 中安装和删除软件包

搜索 NixOS 中的 OpenSSH 服务

一旦你找到了这个名字,用下面的命令打开 configuration.nix 文件:

  1. sudo nano /etc/nixos/configuration.nix

并在行末添加服务的名称(在 } 之前),如下:

  1. [service_name] = true;

由于 我想启用 OpenSSH,我将添加以下内容:

  1. services.openssh.enable = true;

NixOS 系列 #3:在 NixOS 中安装和删除软件包

在 NixOS 上启用 OpenSSH

一旦你在配置文件中添加了服务,保存修改并退出 Nano🔗 linuxhandbook.com 文本编辑器。

要启用该服务,请重建配置文件,并使用以下命令切换到所做的更改:

  1. sudo nixos-rebuild switch

这就行了,你已经启用了该服务。

NixOS 系列 #3:在 NixOS 中安装和删除软件包

从 NixOS 卸载服务

要卸载一个服务,你所要做的就是在 configuration.nix 文件中删除或注释该服务的一行。

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

  1. sudo nano /etc/nixos/configuration.nix

寻找服务,并删除这一行或用 # 注释掉:

NixOS 系列 #3:在 NixOS 中安装和删除软件包

从 NixOS 删除服务

通过添加注释 #,我忽略了 OpenSSH 服务的加载,因为我不再需要它在我的系统上。

保存修改并退出文本编辑器。

最后,重建配置文件并进行切换:

  1. sudo nixos-rebuild switch

NixOS 系列 #3:在 NixOS 中安装和删除软件包

使用 Nix 配置文件安装软件包

配置文件可以让你 方便地一次性管理软件包

要使用 Nix 配置文件安装软件包,你必须在配置文件中输入软件包的名称、重建,然后切换到配置文件,就可以了。

首先,打开 configuration.nix 文件。

  1. sudo nano /etc/nixos/configuration.nix

如果你想 为一个特定的登录用户安装软件包,将软件包的名称添加到用户的配置文件中。

用户配置文件看起来像这样:

  1. users.users.sagar = {
  2. isNormalUser = true;
  3. description = "Sagar";
  4. extraGroups = [ "networkmanager" "wheel" ];
  5. packages = with pkgs; [
  6. firefox
  7. ];
  8. };

当然,它将显示你的用户名而不是 sagar

你应该使用如下语法来添加软件包的名称:

  1. packages = with pkgs; [
  2. 软件包名称
  3. ];

所以我们假设我也想安装 Thunderbird,那么我将添加它的名字,如下所示:

NixOS 系列 #3:在 NixOS 中安装和删除软件包

使用 Nix 配置文件在 NixOS 中安装一个包

你必须在方括号内添加所有的软件包名称,不要用逗号。它必须像截图中描述的那样一个软件一个新的行。

但是如果你想在整个系统中安装这个包,那么你必须在 environment.systemPackages 下添加包的名字,比如:

  1. environment.systemPackages = with pkgs; [
  2. 软件包名称
  3. ];

NixOS 系列 #3:在 NixOS 中安装和删除软件包

使用 Nix 配置文件在 NixOS 中全系统安装软件包

一旦你完成了在系统配置文件或用户配置文件,甚至两者中添加所需软件包的名称,你将需要按照同样的命令来完成安装:

  1. sudo nixos-rebuild switch

这样就可以了!

NixOS 系列 #3:在 NixOS 中安装和删除软件包

使用 Nix 配置文件删除软件包

要删除软件包,你所要做的就是按照给定的简单步骤进行:

◈ 打开 Nix 配置文件
◈ 删除或注释掉软件包的名称
◈ 重新构建配置并进行切换

所以,让我们从第一步开始(打开配置文件):

  1. sudo nano /etc/nixos/configuration.nix

接下来,注释掉用户配置文件或系统配置文件中的包的名称:

NixOS 系列 #3:在 NixOS 中安装和删除软件包

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

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

最后,重建配置文件,并做一个切换来删除包:

  1. sudo nixos-rebuild switch

这是这样!

📋 目前,还没有官方的 GUI 工具来帮助你安装/删除软件包。你可能会发现一些由社区开发的项目,如 nix-gui🔗 github.com 和 nix42b🔗 gitlab.com,但它们不再被维护或仅仅处于早期开发阶段。

NixOS 系列 #3:在 NixOS 中安装和删除软件包

接下来...

我希望你喜欢阅读 NixOS 系列,就像我写它一样。

在下一篇中,我将强调一些在你安装 NixOS 后需要马上做的重要事情。

如果你认为我遗漏了什么或有其他建议,请在评论中告诉我。


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

作者:Sagar Sharma 选题:lkxed 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

NixOS 系列 #3:在 NixOS 中安装和删除软件包
LCTT 译者 :Xingyu.Wang
💎💎💎
NixOS 系列 #3:在 NixOS 中安装和删除软件包
翻译: 973.0 篇

|

贡献: 3160 天
2014-07-25
2023-03-20
https://linux.cn/lctt/wxy
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


原文始发于微信公众号(Linux中国):NixOS 系列 #3:在 NixOS 中安装和删除软件包 | Linux 中国

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月21日22:01:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   NixOS 系列 #3:在 NixOS 中安装和删除软件包https://cn-sec.com/archives/1619852.html

发表评论

匿名网友 填写信息