$ sudo nix-env --list-generations --profile /nix/var/nix/profiles/system
...
600 2020-01-25 21:01:11
601 2020-02-03 13:44:19
602 2020-02-09 14:06:20
603 2020-02-09 14:11:11
604 2020-02-11 00:02:43
605 2020-02-13 12:26:22
606 2020-02-16 16:40:02 (current)
Nixos世代のコミット/チャンネル生成をどのように取得できますか(それは重要ですか?) - チャンネルをロールバックすることもできますか?
つまり、「チャンネルステータス」を605世代の場所にロールバックするにはどうすればよいですか?
私が疑問に思うのは、数日前にsudo nix-channel --update
どのパッケージアップデートが発生してもシステムが不安定になる問題を作成したからです。sudo nixos-rebuild switch
そのため、これを軽減するためにOld Generation(605
)を使い始め、それを使い続けました。
今Nixosシステム構成で特定のパッケージを更新し、605
最新の606
。
私が見つけたhttps://stackoverflow.com/questions/39090387/how-to-undo-nix-channel-update(nix-channel --rollback..
)しかし、チャンネルを数回更新した可能性があるので、「最後の」チャンネルステータスは私に必要なステータスではないかもしれません。
このコマンドの引数としてチャンネルのビルド番号を指定できることがわかりました。しかし、これがnixosビルドとどのような関係があるのかよくわかりません。これは605
私が試したものとは異なる結果を示すようです。
sudo nix-channel --rollback 605
error: generation 605 does not exist
error: program '/nix/store/cs47wjxwiqgyl1nkjnksyf3s2rb93piq-nix-2.3.2/bin/nix-env' failed with exit code 1
答え1
あなたがそれをしたいと思いますかsudo nix-channel --rollback
?たとえば、/nix/var/nix/profiles/per-user/root/channels-*/manifest.nix
名前、コミットハッシュなどを含む項目を手動で確認することもできます。
答え2
長すぎる。
プロファイルの作成とチャンネルの作成は異なります。チャンネルビルドトラッキングリストの変更書くことができる 派生(パッケージ)とプロファイル生成の追跡インストール済み 派生とそのバージョン。
ls -g /nix/var/nix/profiles/per-user/my_user_name/
現在の世代の製品について知っておくべきことすべてを一目でお知らせします。
/TLDR;
Vladimirの答えは完全に正確ですが、長すぎるので簡単に見落とされます。 ;)
チャンネルを更新する場合:
nix-channel --update <my-channel-alias>
現在のユーザーのチャンネル作成を1段階進めます。影響を受けるだけですが、これは依然としてmy-channel-alias
全く新しい世代が構築され、環境がこれを参照するようになります。
残念ながら、nix-channel
リストチャネル生成のためのスイッチはない。これは長い長さの着信場所です。ユーザーchannels
へのリンクを見ることができます。したがって、現在選択されているチャネルの生成は4です。channels-4-link
my_user_name
my_user_name
ls -g /nix/var/nix/profiles/per-user/my_user_name/
channels -> channels-4-link
channels-1-link -> /nix/store/57904rflsfh46y7fxi62rzc7sidc9vmq-user-environment
channels-2-link -> /nix/store/j5j5avwf07a2ajr3jszj9vv8l5ybgycm-user-environment
channels-3-link -> /nix/store/xb0accm8k1zsll5wrxck7gj0xbdv8zk7-user-environment
channels-4-link -> /nix/store/dlh9wlpx59lifgni06q0vwgymshn9jja-user-environment
channels-5-link -> /nix/store/8wymqxsdy3m7gmh6f21m49hl98gy75aa-user-environment
channels-6-link -> /nix/store/3sf1c989bbfrrxrpr235xqjqvd89apsi-user-environment
profile -> profile-1-link
profile-10-link -> /nix/store/kwlgbfbpwjhgb42bp7c899l8a1cyjdcl-user-environment
profile-1-link -> /nix/store/57904rflsfh46y7fxi62rzc7sidc9vmq-user-environment
profile-2-link -> /nix/store/c614r1kmrg9nsx2qvd944k5afj49qim7-user-environment
profile-3-link -> /nix/store/57904rflsfh46y7fxi62rzc7sidc9vmq-user-environment
profile-4-link -> /nix/store/2blnby22dvc92i9ahprwkl504ngj75ad-user-environment
profile-5-link -> /nix/store/ahd9dzfkgvyfqdkdw8cw8w8dyqak66b4-user-environment
profile-6-link -> /nix/store/gbjmn5rcjl4iscfvgms9hk26vhpr6pv2-user-environment
profile-7-link -> /nix/store/57904rflsfh46y7fxi62rzc7sidc9vmq-user-environment
profile-8-link -> /nix/store/k50s7rb4gz3pibd0r8136y628al74www-user-environment
profile-9-link -> /nix/store/57904rflsfh46y7fxi62rzc7sidc9vmq-user-environment
これとは対照的に、プロファイル(ユーザー環境)の作成は次のようにnix-env
改善されます。
--install
--update
--uninstall
nix-envのマニュアルページで述べたように。
man nix-env | grep "new user environment"
また、現在のユーザーのさまざまなプロファイル作成を簡単に照会できます。
nix-env --list-generations