有没有朋友在 macOS 上使用 Nix 管理包的?

好吧,那我更不懂了…… :sweat_smile:

哎,我还是等等再玩吧,玩这个蛮费劲的。

1 个赞

Mac 上感觉还是 Brew 省事,用 Nix 的话在开始阶段需要投入很多的精力,要不是有很强的需求,真心不推荐折腾。

1 个赞

我现在也这么感觉了,但是 Brew 真的太慢了,虽然我用包管理器不可能那么频繁,但只是安装一个包,需要花那么多时间。

设置 HOMEBREW_NO_AUTO_UPDATE=1 以及换成国内镜像会快很多.

1 个赞

哦,好的!不过,我想造成 brew 这么慢的原因主要是 macOS 自己的 Ruby。

用Brew 可以换国内源,或者搭个梯子用官方源,我觉得速度还可以。

我使用了国内源,我觉得下载的速度确实不错。

我也想用, brew 也不打算放弃 :grinning:

1 个赞

我用nix在几个linux和mac之间sync配置,不知道你们有什么问题?

前几天nixos群里有人在 macOS 上用 nix,好像是mac更新把nix的东西覆盖了

1 个赞

哦,我看了他的状况,是 /etc/zshrc 被覆盖掉了,然而 Nix 的其他东西还是留在那里。

好了,现在我折腾成功了。

分享下经验? :grinning:

哈哈,其实也没什么可以分享的。我就是多试试,安装错误了,就卸载了再装一次。

说到卸载,我之前因为冲动,没有看清楚文档就贸然地重装 macOS 来卸载 nix。 其实没有必要这样。

转载一下一个 GitHub gists 中的代码片段:

  1. Kill the daemon process by running

    sudo launchctl unload /Library/LaunchDaemons/org.nixos.nix-daemon.plist
    
  2. Remove the mount from /etc/fstab by running

    sudo vifs
    

    and deleting the line LABEL=Nix\040Store /nix apfs rw,nobrowse.

  3. Delete the APFS volume using diskutil

    diskutil apfs deleteVolume <volumeDevice>
    

Note: volumeDevice can be found by running

diskutil apfs list
  1. Remove the synthetic empty directory for mounting at /nix by running

    sudo vim /etc/synthetic.conf
    

    and deleting the line nix.

  2. Reboot the system for changes to take effect.

  3. 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.

1 个赞

珍爱生命,远离 Nix,这玩意儿与 macOS 八字不合。

  1. 自 macOS Catalina 后,由于 root 目录不可写,Nix 在 macOS 上安装时自动帮你创建一个新分卷。而且 nix-darwin 还要求连接出 /run 目录。另外 Catalina 后只支持 multi-user mode,上来帮你创建 32 个用户以支持并行构建,多么 JB 的贴心。

  2. 没有 brew services 对应的进程启动、停止支持。nix-darwin 提供了一种机制,基本上是在要求你自己用 nix 语法手写 launch daemon.(我吃饱撑的,直接写 xml 不舒服吗,为了启动个服务再学一种语法?!)

  3. 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

1 个赞