새로운 채널 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. 루트 사용자로서 NixOS 채널을 교체하여 업그레이드하려는 채널을 가리키도록 하고 이름이 다음과 같은지 확인하십시오 nixos.
    nix-channel --add https://nixos.org/channels/nixos-18.09 nixos
    
    및 업데이트 채널( nix-channel --update).
  4. 루트 사용자로 시스템을 구축합니다.
    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즉, 채널을 업데이트할 때까지입니다.

관련 정보