0 使用目的
archlinux的pacman包管理工具以及对其包装的yay、paru等工具已经足够优秀,在archlinux上使用nix包管理工具的主要目的是熟悉nix包管理工具的配置语法,以便于在没有nixos的情况下学习nixos的包管理,为使用nixos作准备。
1 nix在Archlinux上的推荐安装方法
1.1 nix官网
通过运行官网给出的安装脚本安装。可以选择单用户或多用户安装。也可以选择通过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)