Nixos

如何升級 Nixos 以使用新的頻道 nixos 版本?

  • July 8, 2021

我目前使用的是 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”。

升級 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
  1. 重新啟動以進入您新建的 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 工具的呼叫,例如nixos-rebuild,需要-I標誌來指定正確的 nixpkgs。也就是說,直到您更新頻道。

引用自:https://unix.stackexchange.com/questions/491727