新しいチャンネルのnixosバージョンを使用するためにNixosをアップグレードする方法は?

新しいチャンネルのnixosバージョンを使用するためにNixosをアップグレードする方法は?

私は現在18.03を使用していますが、18.09にアップグレードしたいです。どうすればいいですか?

ウェブ検索で以下を見つけましたが、まだわかりません。 https://discourse.nixos.org/t/how-to-upgrade-from-18-03-to-18-09/933

参照チャンネルを変更できるとしますかnixos?しかし、これが問題が発生した場合、ロールバックを許可するのに適しているかどうかはわかりません。

sudo nix-channel --list        
nixos https://nixos.org/channels/nixos-18.03
unstable https://nixos.org/channels/nixos-unstable

また、以下が表示されます。https://github.com/NixOS/nixpkgs/issues/40351#issuecomment-388405973(下記の引用) - この部分も考慮すべきですか?

返品:

/etc/nixos/configuration.nix:

#この値は、データベースサーバーなどの特定のソフトウェアの破損を防ぐために、システムが互換性が必要なNixOSのバージョンを決定します。 NixOSのリリースノートに#そうする必要があるとマークされたら、この設定を変更する必要があります。 System.stateVersion = "17.09"; #コメントを読んでいますか?これを変更するコマンドがいつ実行されたのかわかりません。

リリースノート、ニュース、利用可能な情報を読みました。コマンドが実行されるのを待っていますが、見つかりません。

とにかく投稿して数日後に「17.09」->「18.03」を変更しました。

答え1

NixOSのアップグレード:

  1. NixOSインストールのバックアップがあることを確認し、必要に応じてバックアップから復元する方法を知ってください。
  2. レビューNixOS リリースノート手動で実行する必要がある変更を検討してください。特に、オプションが以前のバージョンと互換性のない方法で変更されることがあります。
  3. rootユーザーとしてNixOSチャンネルを交換して、アップグレードしたいチャンネルを指し、名前が次のようになっていることを確認してくださいnixos
    nix-channel --add https://nixos.org/channels/nixos-18.09 nixos
    
    とアップデートチャンネル(nix-channel --update)。
  4. rootユーザーとしてシステムを構築します。
    nixos-rebuild --upgrade boot
    
  5. 新しいNixOSを起動するには、再起動してください。

問題が発生した場合は、再起動し、前の世代を選択し、nix-channel前のチャンネルの追加を使用して、タスクnixos-rebuild boot世代をデフォルトに設定できます。を使用するよりも再構築する方が安定していると思いますnixos-rebuild --rollback

代替プロセス

チャネルを混乱させずにアップグレードを試みるには、 nixpkgs リポジトリの GIT レプリカを使用できます。

cd nixpkgs
git checkout release-18.03
nixos-rebuild -I nixpkgs="$PWD" build

すべてがうまくいけば…

sudo nixos-rebuild -I nixpkgs="$PWD" boot

このアプローチの欠点は、たとえばNixツールへの後続の呼び出しで正しいnixpkgを指定するためにnixos-rebuildこのフラグが必要であることです。-Iつまり、チャンネルを更新するまでです。

関連情報