Catalina上でNixを使う

Catalinaでは'/'にディレクトリが作れなくなってしまったので /nixがどうにもならんことになってしまった。 Discourseのトピックによれば、 パーティションを作ってマウントすることが必要らしい(参考)。 うーむ、どうもこれしかなさそうなんだけど、 もうちょっとやり方が確定するまでメインマシンのアップグレードはしばらく待ってみようか。

ちなみに現在、Nixで(メインマシンに)インストールしているものは以下の通り。

特に重要なものはcoreutils, emacs, git, parallel, tmux, xzあたり。 sat-bench, R, source-highlightは多分捨てられる。 gunpg, nodejsは公式バイナリでもいいか。

とすると、残念だけど、色々と設定が必要ならこの際Nixをやめられない訳ではないようだ。

2019-10-08T19:00:00 STEPS THAT WORK

などと言いつつ、敷居が低い人柱を志願してしまった。

  1. synthetic.confを作る
sudo echo nix > /System/Volumes/Data/private/etc/synthetic.conf

(いや/usr/bin/vimを使うことになるのだけど。)

  1. /nixを有効にするためまずreboot

  2. ボリュームNixを作る

sudo /usr/sbin/diskutil apfs addVolume disk1 APFSX Nix -mountpoint /nix
  1. 色々attributeを設定
sudo /usr/sbin/diskutil enableOwneship /nix
sudo /usr/sbin/diskutil apfs encrypt Nix -user disk
sudo /usr/sbin/chown -R <user> /nix
  1. nixをインストール
curl https://nixos.org/nix/install | sh

移動されたディレクトリから復帰するのはownerなどが変わっていたのでやめたほうがいいだろう。 ということでnix由来のプログラムも復活。メインマシンも更新しよう。

しかしCatalinaはinteractive shellをzshに変えよとうるさい。色々設定を変えるはめんどいんじゃあ。

2019-10-17

リブートしたらNixボリュームが/Volume/Nixにマウントされていた。/nixはあるけど空。 ということで上記の方法で設定しても、毎回、

sudo /usr/sbin/diskutil umount /Volume/Nix
sudo /usr/sbin/diskutil mount -mountPoint /nix Nix

しないといけないっぽい。マウントポイントは永続的ではないのか。