Nix在我身边出现的声音越来越多,不过作为技术小白,在写代码这块实在是涉猎太少,不过在日常使用中还是能感受到macOS下HomeBrew作为package manager有多难用。

所以决定更换为Nix来进行包管理!迈出技术小白的一大步!!

作者使用的机器为Mac mini M1,同类型苹果硅的机器应该也可以借鉴经验。网上关于macOS安装Nix的中文内容实在是太少了,所以写一些作者的经验来帮助更多的小伙伴!

更换zsh为bash

在macOS下,机器默认使用zsh,这里作者建议首先更换为bash,更换的方式有两种:

  • 在“终端(TERMINAL)”内执行 chsh -s /bin/bash 执行完成之后关闭终端重新打开,则可以看到成功更改。
  • 打开“系统设置”-“用户与群组”-在“管理员”的用户上右键-“高级选项”-“登陆shell”,更换为/bin/bash

安装Nix: the package manager

然后我们安装Nix: the package manager (MacOS)

1
sh <(curl -L https://nixos.org/nix/install)

在安装过程中,作为一个自动化脚本,它会仔细告诉你它都做了些什么,非常贴心!也会告诉你都执行了什么,如果你不放心自动化脚本那么也可以仔细看一下输出,来判断一下是否接受。

安装完毕后,请关闭终端再打开!

重新打开终端之后,通过以下命令测试是否安装成功:

1
nix-shell --version

成功则会返回版本号。

如果安装失败,或者你想重新安装Nix,那么请重新执行安装脚本,根据它输出的内容,需要你删除/备份后删除 /etc/bashrc 和 /etc/bashrc.backup-before-nix

1
rm /etc/bashrc /etc/bashrc.backup-before-nix

之后再重新执行安装脚本

那么,欢迎你正式进入到Nix的大家庭!

这里作者简单介绍两种使用方式。

  • 如果你想将包安装到实际的当前用户使用环境中,那么请使用nix-env,例如我要安装python3:
1
nix-env -iA nixpkgs.python3
  • 如果你只是想在临时环境中测试一下要使用的包(退出nix-shell则无法使用),那么请使用nix-shell,例如我要使用python3:
1
 nix-shell -p python3

那么成功输出:

1
[nix-shell:~]$ 

一些常用命令:

  • 升级实际用户使用的包可以使用:
1
nix-env --upgrade
  • 清理不再需要的包(应该是会清理那些你在nix-shell里面拉的屎):
1
nix-collect-garbage -d
  • 查看已经安装的包列表:
1
nix-env --query --installed
  • 卸载你不需要的包:
1
nix-env --uninstall <package-name>

查找想要安装的包可以在search.nixos.org里找到你所需要的东西。

参考链接:

https://www.howtogeek.com/444596/how-to-change-the-default-shell-to-bash-in-macos-catalina/

https://nixos.org/download#nix-install-macos