M1 Mac安装Nix时遭遇eDSRecordAlreadyExists错误求助
彻底清理Nix相关用户和组
别只删_nixbld1,先检查所有相关用户和组:dscl . list /Users | grep _nixblddscl . list /Groups | grep nix
把找到的_nixbld开头用户、nixbuild组、nix-daemon用户全删了,比如删用户:sudo dscl . delete /Users/_nixbldX(把X换成实际数字)
删组:sudo dscl . delete /Groups/nixbuild清干净Nix残留文件
删掉系统和用户目录下的Nix相关内容:sudo rm -rf /nixrm -rf ~/.nix-profile ~/.nix-defexpr ~/.nix-channels
还有LaunchDaemon的配置也要删:sudo rm -rf /Library/LaunchDaemons/org.nixos.nix-daemon.plist修复DS数据库的残留记录
检查用户ID是否有重复:sudo dscl . -list /Users UniqueID | sort -n
如果发现重复的UniqueID,删掉对应的用户记录,确保没有冲突后再安装。用官方卸载脚本彻底清理
先跑官方卸载脚本:curl -s https://nixos.org/nix/install | sh -s -- --uninstall
完事重启电脑,再重新执行安装命令:curl -s https://nixos.org/nix/install | sh手动指定构建用户ID范围
提前创建/etc/nix/nix.conf文件,添加以下内容:build-users-group = nixbuild build-users-group-id-start = 30000 build-users-group-id-end = 30009之后再执行安装命令,强制让Nix用这个ID范围创建用户,避免和现有ID冲突。
临时关闭SIP试试
重启Mac进恢复模式(按住电源键到出现启动选项,选恢复模式),开终端输:csrutil disable
重启后重新装Nix,装完记得再开启SIP:csrutil enable
内容的提问来源于stack exchange,提问作者mungaih pk

