Skip to main content

Nix on macOS

·199 words·1 min

Although I have tried to install Nix on Linux before(failed), I never successfully installed it, because the update nixpkgs need “Internet” connection, which is blocked in China. Today I am going to do it again, with my M1 Macbook.

# Of course you need to setup proxy before this.
export https_proxy=http://localhost:3128
curl -L -o /tmp/
sh /tmp/
# The official guide is just 1 line to install: `sh <(curl -L`.

Even if proxy was set it will still be stuck at running sudo HOME=/var/root NIX_SSL_CERT_FILE=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt /nix/store/7n5yamgzg5dpp5vb6ipdqgfh6cf30wmn-nix-2.12.0/bin/nix-channel --update nixpkgs, because the sudo won’t recognize the proxy settings. Cancel the installation with Ctrl-C, it’s fine we will continue it with sudo https_proxy= -i nix-channel --update nixpkgs.

Next, as the guide says run nix-shell -p nix-info --run "nix-info -m", but it is very slow, again due to proxy. We need to edit the plist file to add environment variable of proxies to it. Edit file sudo vim /Library/LaunchDaemons/org.nixos.nix-daemon.plist, in the EnvironmentVariables dict add 2 entries for proxies and restart with sudo launchctl stop org.nixos.nix-daemon && sudo launchctl start org.nixos.nix-daemon


Now you can run nix-shell -p nix-info --run "nix-info -m", test with nix-shell -p hello and hello.