현재 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 업그레이드:
- NixOS 설치의 백업이 있는지 확인하고 필요한 경우 백업에서 복원하는 방법을 알아 두십시오.
- 검토NixOS 릴리스 노트수동으로 수행해야 하는 변경 사항을 고려하십시오. 특히 옵션이 이전 버전과 호환되지 않는 방식으로 변경되는 경우가 있습니다.
- 루트 사용자로서 NixOS 채널을 교체하여 업그레이드하려는 채널을 가리키도록 하고 이름이 다음과 같은지 확인하십시오
nixos
.
및 업데이트 채널(nix-channel --add https://nixos.org/channels/nixos-18.09 nixos
nix-channel --update
). - 루트 사용자로 시스템을 구축합니다.
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 도구에 대한 후속 호출에서 올바른 nixpkg를 지정하기 위해 nixos-rebuild
이 플래그가 필요하다는 것입니다. -I
즉, 채널을 업데이트할 때까지입니다.