私はnixストレージを含むUSBディスクを持っています(より正確にはnix-store.squashfsNixOS インストール ISO のファイル)/mnt/foobar。これにより、次ls /mnt/foobar
のようなおなじみのサブディレクトリが表示されます。
kipnv4i3njqc3hjunp8nv23o2io3-somepackage-0.0.1
...etc...etc...
今(どのように)nixストアから私の通常のストアにものをインポートできますか?/nix/ストア? (理想的には依存関係を使用して...)それとも不可能ですか? ... :/近いと感じますが、次に何をすべきかわかりませんNIX_STORE=/mnt/foobar nix-store -qR /mnt/foobar/*-somepackage-*
。
答え1
うーん。私は以下に基づいて何かを試しました。ウィキペディア(「ラージファイル」セクション)、つまり:
sudo unshare -m bash
mount -o remount,rw /nix/store
cd /mnt/foobar
tar c kipnv4i3njqc3hjunp8nv23o2io3-somepackage-0.0.1 | tar x -C /nix/store
printf "kipnv4i3njqc3hjunp8nv23o2io3-somepackage-0.0.1\n\n0\n" | nix-store --register-validity --reregister
exit
これで、nix-env -qa
このパッケージは-P-
(インストール済み?またはインストールされていません?)と表示されているようです。しかし、すべてが正常かどうかはまだ100%確かではありません。
答え2
新しいCLIを搭載したNix v3ではnix copy
文法はこうです
nix copy --from /mnt/foobar /nix/store/kipnv4i3njqc3hjunp8nv23o2io3-somepackage-0.0.1
パッケージを直接ビルドした場合--no-check-sigs
。