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”。
升級 NixOS:
- 確保您有 NixOS 安裝的備份,並且如果需要,您知道如何從備份中恢復。
- 查看NixOS 發行說明以確保您考慮到需要手動完成的任何更改。特別是,有時選項會以向後不兼容的方式更改。
- 作為 root 使用者,替換 NixOS 頻道,使其指向您要升級到的頻道,同時確保它被命名為
nixos
:nix-channel --add https://nixos.org/channels/nixos-18.09 nixos
並更新頻道 (
nix-channel --update
)。 4. 作為 root 使用者,建構您的系統:nixos-rebuild --upgrade boot
- 重新啟動以進入您新建的 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。也就是說,直到您更新頻道。