在 macOS 系统中移除 Nix

Posted by WHZ0325 on 2023-01-20, Viewed times

前言

这两天想安装 Nix 用于处理一个转 midi 的程序,结果由于网络问题没完全安装成,卸载的过程比较艰难所以记录一下。

过程

GitHub 上找到了一个相关问题,链接到了一个一年前的教程,虽然有点复杂,但是打算参照这个教程试试看。

第一步,前往 /etc/ 这个目录,可以看到存在教程中提到的 zshrc.backup-before-nixbashrc.backup-before-nix 两个文件,直接用它们覆盖:

1
2
sudo mv /etc/zshrc.backup-before-nix /etc/zshrc
sudo mv /etc/bashrc.backup-before-nix /etc/bashrc

第二步,在终端输入:

1
sudo vifs

可以看到注释下面有一行与 Nix 相关,直接在 Vim 删去($6$ 是行号):

1
:6d

第三步,打开 /etc/synthetic.conf,里面只有一行,与 Nix 相关,按照教程直接删去:

1
sudo rm /etc/synthetic.conf

第四步,与教程略有不同,可能是我没安装完全的缘故,前往 /Library/LaunchDaemons 目录(注意比教程中多了个 s),看到有一个 org.nixos 开头的列表项,删除它:

1
2
sudo launchctl unload /Library/LaunchDaemons/org.nixos.xxx.plist
sudo rm /Library/LaunchDaemons/org.nixos.xxx.plist

第五步,复制命令,移除所有相关文件:

1
sudo rm -rf /etc/nix /var/root/.nix-profile /var/root/.nix-defexpr /var/root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels

第六步,继续在终端中复制命令执行:

1
2
sudo dscl . delete /Groups/nixbld
for i in $(seq 1 32); do sudo dscl . -delete /Users/_nixbld$i; done

最后一步,与教程中有所不同,参考 GitHub 上的方案,先重新启动,再执行:

1
2
sudo diskutil apfs deleteVolume /Volumes/Nix\ Store
sudo rm -rf /nix/

重新启动,撒花!🎉

总结

必应 yyds!