저는 패키지 관리자, 특히 Nix가 패키지 설치를 확인하는 방법을 이해하려고 노력하고 있습니다.
나는 Nix 패키지가 모든 종속성을 명시적으로 선언한다는 것을 알고 있습니다. 그러나 Nix는 시작하기 전에 패키지 설치가 성공할 것이라고 보장하거나 적어도 높은 수준의 확실성을 제공할 수 있습니까? 그렇다면 어떻게 수행됩니까? 그렇지 않다면 왜 안 됩니까? 패키지 설치에 대해 유사한 결정성을 달성할 수 있는 방법이 있습니까?
정식으로 검증된 운영체제 등 실제로 설치를 실행하기 전 패키지의 호환성을 확인하는 명령어가 있나요?
답변1
대중에게 제공되는 패키지가 항상 설치 가능하도록 패키지 저장소 관리자가 할 수 있는 일이 많이 있습니다. 가장 확실한 것은 궁극적인 스모크 테스트입니다. 즉, 지원되는 하드웨어(또는 그러한 하드웨어를 에뮬레이트하는 가상 머신)에 패키지에 포함된 실행 파일을 실제로 설치하고 실행하는 것입니다. nixpkgs 관련 시스템에 대해서는 아무것도 모르지만 계속 나오는 이름은히드라.
패키지 실행 외에도 관리자는 업스트림 패키지 테스트를 실행하고, 다른 패키지와 함께 사용할 때 라이브러리의 핵심 기능이 제대로 작동하는지 확인하고, 런타임이나 패키지 크기와 같은 스모크 테스트를 수행하고, 패키지가 다른 경험적 방법으로 "작동"하는지 확인할 수 있습니다. 대부분의 소프트웨어는 어떤 방식으로든 공식적으로 검증되지 않기 때문에 최신 패키지 저장소의 공식 검증에는 수십 년이 걸릴 수 있습니다.