
Determinate Systems의 Native Linux Builder가 정식 출시됐다. macOS에서 Determinate Nix와 FlakeHub 계정을 사용하는 사람은 별도의 원격 빌더나 직접 관리하는 리눅스 가상 머신 없이 리눅스 파생물을 빌드할 수 있다.
이 기능은 macOS에 내장된 Virtualization framework를 이용하며, ARM과 x86 리눅스(aarch64-linux, x86_64-linux) 빌드를 지원한다. NixOS 시스템과 Docker 이미지 빌드, nix flake check로 리눅스 출력물을 CI에 올리기 전에 확인하는 작업 등에 쓸 수 있다. macOS용 Determinate Nix를 설치하고 FlakeHub에 로그인하면 별도 설정 없이 사용할 수 있다. builder는 기본 활성화 상태다.
개발자 프리뷰에서는 이용 신청이 필요했지만, 이제 FlakeHub에 로그인한 모든 macOS용 Determinate Nix 사용자가 이용할 수 있다. FlakeHub 가입은 무료다. 이미 설치한 Determinate Nix는 sudo determinate-nixd upgrade로 업그레이드할 수 있고, determinate-nixd auth login으로 FlakeHub에 로그인한다.
알려진 제약도 있다. 기본 가상 머신 메모리는 최대 8 GiB이며, 더 필요한 빌드는 설정에서 builder.memoryBytes를 높여야 한다. macOS의 Nix 저장소는 기본적으로 대소문자를 구분하지 않는 APFS 볼륨에 있어, 대소문자만 다른 파일을 포함한 리눅스 패키지에서 파일 충돌과 해시 불일치가 생길 수 있다. 대소문자를 구분하는 저장소로 바꾸려면 Determinate Nix를 제거한 뒤 다시 설치해야 하며, 제거 과정에서 기존 Nix 저장소가 모두 삭제된다.
일부 빌드는 가상 머신의 파일 시스템 드라이버와 cp --no-preserve=mode 명령이 맞물려 Permission denied 오류를 낼 수 있다. 고정 출력 파생물은 macOS 내장 DHCP 서버의 임대 주소를 사용하므로, 한 시간 안에 253개를 빌드하면 254번째 빌드가 임대 주소가 만료될 때까지 멈출 수 있다. 자세한 문제 해결 방법은 Native Linux Builder 안내서에서 확인할 수 있다.
원격 빌더 등 다른 방식으로 리눅스 빌드를 처리하려면 Determinate Nixd 설정 파일 /etc/determinate/config.json에서 builder를 비활성화할 수 있다. 메모리와 CPU 할당량도 같은 설정에서 조정한다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요