我现在的系统又两个 nix 的残留物:
- /nix
- /var/db/dslocal/nodes/Default/groups/nixbld.plist
- /var/db/dslocal/nodes/Default/groups/nixbld{2…9}.plist
我其实使用 fzf 在 root 用户下在 / 找的。
我现在的系统又两个 nix 的残留物:
我其实使用 fzf 在 root 用户下在 / 找的。
用 sudo 也干不掉?我就怕这种,苹果系统我很不熟悉……
这个好像是要关掉 SIP 之类的操作,总之我是懒得去管他们了。
好吧,那我更不懂了……
哎,我还是等等再玩吧,玩这个蛮费劲的。
Mac 上感觉还是 Brew 省事,用 Nix 的话在开始阶段需要投入很多的精力,要不是有很强的需求,真心不推荐折腾。
我现在也这么感觉了,但是 Brew 真的太慢了,虽然我用包管理器不可能那么频繁,但只是安装一个包,需要花那么多时间。
设置 HOMEBREW_NO_AUTO_UPDATE=1
以及换成国内镜像会快很多.
哦,好的!不过,我想造成 brew 这么慢的原因主要是 macOS 自己的 Ruby。
用Brew 可以换国内源,或者搭个梯子用官方源,我觉得速度还可以。
我使用了国内源,我觉得下载的速度确实不错。
我也想用, brew 也不打算放弃
我用nix在几个linux和mac之间sync配置,不知道你们有什么问题?
前几天nixos群里有人在 macOS 上用 nix,好像是mac更新把nix的东西覆盖了
哦,我看了他的状况,是 /etc/zshrc 被覆盖掉了,然而 Nix 的其他东西还是留在那里。
好了,现在我折腾成功了。
分享下经验?
哈哈,其实也没什么可以分享的。我就是多试试,安装错误了,就卸载了再装一次。
说到卸载,我之前因为冲动,没有看清楚文档就贸然地重装 macOS 来卸载 nix。 其实没有必要这样。
转载一下一个 GitHub gists 中的代码片段:
Kill the daemon process by running
sudo launchctl unload /Library/LaunchDaemons/org.nixos.nix-daemon.plist
Remove the mount from /etc/fstab
by running
sudo vifs
and deleting the line LABEL=Nix\040Store /nix apfs rw,nobrowse
.
Delete the APFS volume using diskutil
diskutil apfs deleteVolume <volumeDevice>
Note: volumeDevice
can be found by running
diskutil apfs list
Remove the synthetic empty directory for mounting at /nix
by running
sudo vim /etc/synthetic.conf
and deleting the line nix
.
Reboot the system for changes to take effect.
Run
echo "removing daemon"
sudo rm /Library/LaunchDaemons/org.nixos.nix-daemon.plist
echo "removing daemon created users and groups"
USERS=$(sudo dscl . list /Users | grep nixbld)
for USER in $USERS; do
sudo /usr/bin/dscl . -delete "/Users/$USER"
sudo /usr/bin/dscl . -delete /Groups/staff GroupMembership $USER;
done
sudo /usr/bin/dscl . -delete "/Groups/nixbld"
echo "reverting system shell configurations"
sudo mv /etc/profile.backup-before-nix /etc/profile
sudo mv /etc/bashrc.backup-before-nix /etc/bashrc
sudo mv /etc/zshrc.backup-before-nix /etc/zshrc
echo "removing nix files"
sudo rm -rf /nix
sudo rm -rf /etc/nix
sudo rm -rf /etc/profile/nix.sh
sudo rm -rf /var/root/.nix-profile
sudo rm -rf /var/root/.nix-defexpr
sudo rm -rf /var/root/.nix-channels
sudo rm -rf /var/root/.cache/nix
rm -rf ~/.nix-profile
rm -rf ~/.nix-defexpr
rm -rf ~/.nix-channels
rm -rf ~/.nixpkgs
rm -rf ~/.config/nixpkgs
rm -rf ~/.cache/nix
to remove all remaining Nix
artifacts from the system.
珍爱生命,远离 Nix,这玩意儿与 macOS 八字不合。
自 macOS Catalina 后,由于 root 目录不可写,Nix 在 macOS 上安装时自动帮你创建一个新分卷。而且 nix-darwin 还要求连接出 /run
目录。另外 Catalina 后只支持 multi-user mode,上来帮你创建 32 个用户以支持并行构建,多么 JB 的贴心。
没有 brew services 对应的进程启动、停止支持。nix-darwin 提供了一种机制,基本上是在要求你自己用 nix 语法手写 launch daemon.(我吃饱撑的,直接写 xml 不舒服吗,为了启动个服务再学一种语法?!)
Nix macOS 使用用户极少,很多包需要 patch 才能完美运行在 macOS 下。另外很多 macOS 下专属软件 Nix 没有覆盖,如 macfuse. 这点 Nix 远远不如 Homebrew,甚至是不如 MacPorts.
这也不能全怪 Nix ,只能怪 Mac 限制太多。要自由就用 Linux吧。
想用的简单感觉还是 Brew 最方便。 Nix 就是要折腾的,卖点是可以很方便的孤立开放环境,以及重复性。
据我所知:use-package 的作者 和 purcell 都是在 Mac 上使用 Nix,Github 上也有很多成熟的包是支持 Mac 的,比如 kclejeune/system, srid/nixos-config。