Nixパッケージマネージャとproot

背景

  • Nixはバージョン管理に強いパッケージマネージャーのひとつ。同じライブラリの異なるバージョンを共存させたり、環境設定を巻き戻したりすることが得意。
  • 今回は「Nixを使いたいがrootがないので/nixを作成できない」場合に対処する方法についてまとめる。

方法

PRootのセットアップ

tallocライブラリが必要なのでインストールしておく。たとえばLinuxbrewなどから。

cd $workingdir
git clone https://github.com/proot-me/PRoot.git
cd PRoot/src
make
cp proot $binpath 

簡単ですね。

Nixのインストール

/nixの代わりとなるディレクトリを用意してprootでマウント

mkdir $hostdir  # 例えば~/nix-mntなど
proot -b $hostdir:$/nix bash # お好みのシェルでどうぞ

続けてprootシェル内でNixをインストール

curl https://nixos.org/nix/install | sh

以上。私はfishシェルを使っていたので、さらにマウント直後に

fenv source $HOME/.nix-profile/etc/profile.d/nix.sh

を実行するように設定した。


まとめ

  • rootなしでNixをインストールした。
  • nixを触るときはその都度prootする必要がある。

参考文献

https://nixos.org/wiki/How_to_install_nix_in_home_(on_another_distribution)#Building_native_packages