最近更换了 M4 Pro 的 MacBook Pro,面临着重新配置开发环境的挑战。虽然我之前已经在 dotfiles 项目中维护了 tmux、alacritty 和 neovim 等工具的配置,但实际上还有许多其他组件需要重新设置。起初我考虑编写一个 setup 脚本来自动化这个过程,但在研究过程中接触到了 Nix 这个声明式的包管理器,它的设计理念让我眼前一亮。
Nix 就像一把强大的瑞士军刀,不仅能解决 macOS 的环境配置,还可以统一管理我的 homelab 和 VPS 的环境。回想起之前那些需要手动配置的环境,确实浪费了不少时间。
这次我决定彻底转向 Nix 模式来解决环境配置的问题。不得不说,Nix 的学习曲线确实很陡峭,如果不是现在有 AI 辅助,可能还在苦苦挣扎。经过一番努力,我终于完成了自己的 Nix 配置。
下文简单记录一下我的一个全新 macOS 环境的初始化流程,其他发行版的 Linux 和 NixOS 的配置目前还没写,等需要用的时候逐步完善。
Xcode
xcode-select --install
sudo xcodebuild -license
softwareupdate --install-rosetta --agree-to-license
Brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
我的设计是 GUI 软件由 Brew 管理,其他所有命令行工具软件都交由 nixpkgs 管理,但是由于现在是全新初始化环境,后面用到了 justfile,此时还是先使用 Brew 安装一下:brew install just
Nix
使用 Determinate Nix Installer 来安装 nix with nix-darwin:
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | \
sh -s -- install
部署
git clone https://github.com/wayjam/dotfiles.git
just # see all commands
Ref
即便有 AI 助手辅助,很多问题也是很难解决,对于 Nix 我目前还是有很多不熟悉和不清楚的地方,还得依靠目前网络上开源的各路配置。