GN⁺: NixOS 재현 가능한 빌드: 독립적으로 성공적으로 재구축된 최소 ISO
(discourse.nixos.org)- NixOS 팀이 Hydra에서 발행한 nixos-minimal ISO의 독립적이고 비트 단위로 동일한 재구축을 성공적으로 완성했습니다.
- Reproducible Builds의 주요 이점은 빌드 파이프라인에서 조작되지 않았음을 확인하는 신뢰할 수 있는 방법을 제공한다는 것입니다.
- 팀은 ISO에 포함된 모든 패키지, ISO 자체의 빌드, 그리고 ISO에 포함되지 않은 ISO를 빌드하는 데 필요한 패키지를 재현했습니다.
- 재현은 NixOS 20.03을 가진 새로운 VirtualBox 기기를 시작하고, NixOS 저장소를 복제하고, 특정 커밋을 확인하고, ISO를 빌드하는 일련의 명령을 실행함으로써 달성되었습니다.
- 팀은 이 접근법에 잠재적인 부트스트랩 문제가 있음을 인정하며, 이에는 2020 ova 또는 다운로드된 git에 백도어가 있을 가능성이 포함됩니다. 그러나 이 테스트는 여전히 ISO의 재현 가능성에 대한 높은 확신을 제공합니다.
- 팀은 이전에 minimal ISO가 100% 재현 가능하다고 발표했지만, Hydra 캐시와 ISO 생성 방식에 문제가 있어 차이가 발생했습니다. 이 문제들은 이제 해결되었습니다.
- 향후 작업에는 재현 과정에서 사용된 해킹 제거, 더 많은 패키지의 재현 가능성 확보, 정기적인 독립적 재구축을 위한 인프라 구축, 빌드 증명을 공유하고 사용하는 도구 생성이 포함됩니다.
- 팀은 다른 사람들이 그들의 노력에 참여하도록 초대하며, GitHub 프로젝트 보드와 NixOS Reproducible Builds 웹사이트 링크를 제공하여 더 많은 정보를 제공합니다.
Hacker News 의견
- 소스에서 최소 ISO를 재구축하는 것은 재생산 가능한 소스에서 시스템을 구축할 수 있는 중요한 성과로 간주된다.
- Guix는 단일 재생산 가능한 357 바이트 바이너리에서 전체 컴파일러 툴체인을 부트스트랩하는 데에 주목할 만한 이정표를 달성했다.
- 소프트웨어 컴파일에서 재생산성이 기본 동작이 아닌 이유에 대한 질문이 있다.
- NixOS가 다른 리눅스 배포판처럼 유지 관리자가 패키지에 서명하여 제출 및 검토된 코드와 빌드되는 코드가 동일한지 확인하도록 제안이 제시되었다.
- NixOS의 재생산성에 대한 혼란이 있으며, 이는 시스템의 핵심 기능으로 생각되었다.
- OpenBSD 프로젝트는 모든 설치가 고유하고 무작위로 주소 오프셋을 가지는 점에서 대조적인 접근법으로 주목받고 있다.
- Nix/NixOS/Nixpkgs의 재생산성은 소스에 대해서만이며, 바이너리는 빌드마다 변경될 수 있다는 것이 명확히 설명되었다.
- Guix, Archlinux, Debian과 같은 다른 시스템들이 Nix/NixOS/Nixpkgs보다 바이너리 재생산성을 더 잘 수행하고 있다고 언급되었다.
- 이 이정표는 인상적이라고 칭찬되며, ISO가 어떻게 생성되었는지에 대한 추가 정보 요청이 있다.
- 이 개발이 Ken Thompson의 'Reflections on Trusting Trust'에서 논의된 백도어 컴파일러 문제를 해결하는 데 도움이 될 수 있다는 제안이 있다.
- 시간이 종종 바이너리 내부에 들어가기 때문에, 이 과정에 대해 시스템 시간을 가짜로 만들어야 하는지에 대한 질문이 있다.
- 이 개발과 Red Hat 생태계 내의 Fedora Silverblue, Ansible, 그리고 Fedora Silverblue + Ansible 사이의 비교가 요구되고 있다.