Archlinux上使用nix包管理工具进行包管理

0 使用目的

archlinux的pacman包管理工具以及对其包装的yay、paru等工具已经足够优秀,在archlinux上使用nix包管理工具的主要目的是熟悉nix包管理工具的配置语法,以便于在没有nixos的情况下学习nixos的包管理,为使用nixos作准备。

1 nix在Archlinux上的推荐安装方法

1.1 nix官网

Download | Nix & NixOS

通过运行官网给出的安装脚本安装。可以选择单用户或多用户安装。也可以选择通过docker安装。

1.2 pacman安装

extra源中已经包含了这个包,直接安装将会是多用户安装。

2 配置nix

参照Nix-ArchWiki进行配置。Nix - ArchWiki

2.1 启动守护进程

为了在启动时启动Nix守护进程,要给nix-daemon.service使能。

systemctl start nix-daemon.service

2.2 添加用户组

将所需的用户添加到nix-user用户组,以便访问守护进程套接字。安装nix之后应该已经创建了nix-user用户组。因此通过下面命令直接添加即可。

sudo gpasswd -a $USER nix-users

重新启动会话以使更改生效。

2.3 添加国内channel

使用清华源: nix-channels | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

用于是多用户安装,所以下面的命令需要管理者权限。

sudo nix-channel --add https://mirrors.tuna.tsinghua.edu.cn/nix-channels/nixpkgs-unstable nixpkgs 
sudo nix-channel --update

以及替换二进制缓存服务器:

单独安装的 Nix:编辑配置文件添加或修改如下项(多用户安装修改 /etc/nix/nix.conf,单用户安装修改 ~/.config/nix/nix.conf): substituters = Error https://cache.nixos.org/

3 使用nix进行包管理

3.1 基本安装与卸载

nix-env -iA nixpkgs.hello 
nix-env --uninstall hello

但是非nixos上的nix似乎虽然可以使用nix进行包管理,但是却不能通过configure.nix配置文件进行管理,关于这一点我暂时没找到资料,有大佬知道什么方案吗?如果不能够使用.nix配置文件,那么在archlinux装nix包管理工具的目的就大打折扣了。

3.2 尝试替换一个包改用nix安装

使用nvim启动。

3.3 通过fastfetch查看包的情况

Packages一行表现出了当前系统中的包的情况:

Packages: 1949 (pacman), 24 (nix-user), 55 (nix-default), 8 (flatpak)
1 个赞

要玩nix还是得在nixos,暑假搞哈共享/home分区的双系统安装