자주 묻는 질문#
Nix라는 이름은 어디에서 유래했습니까?#
Nix라는 이름은 아무것도 없음을 뜻하는 네덜란드어 niks에서 유래했습니다. 빌드 작업은 입력으로 명시적으로 선언되지 않은 것은 아무것도 볼 수 없습니다.
— Nix: A Safe and Policy-Free System for Software Deployment, LISA XVIII, 2004
Nix 로고는 Haskell 로고에 대한 한 아이디어와 nix가 라틴어로 눈이라는 사실에서 영감을 받았습니다.
플레이크란 무엇입니까?#
플레이크를 참고하십시오.
어떤 채널 브랜치를 사용해야 합니까?#
Nixpkgs와 NixOS에는 안정 릴리스와 롤링 릴리스가 모두 있습니다.
이러한 릴리스는 “채널 브랜치”라는 변형으로 배포됩니다. 채널 브랜치는 릴리스에 사용되는 Git 브랜치이며, Nix 채널로도 변환됩니다.
팁
채널에 대한 자세한 내용은 Nix 참조 매뉴얼의 nix-channel 항목을, Nixpkgs 브랜치 전략에 대해서는 Nixpkgs 기여 가이드를 참고하십시오.
안정#
안정 릴리스는 버그나 보안 취약점을 수정하기 위한 보수적인 업데이트만 받으며, 그 외에는 패키지 버전이 변경되지 않습니다. 새로운 안정 릴리스는 6개월마다 나옵니다.
Linux(NixOS 및 WSL 포함)에서는
nixos-*를 사용하십시오.이 브랜치들은 대부분의 Linux 패키지가 미리 빌드되어 바이너리 캐시에서 가져올 수 있는 커밋을 가리킵니다. 또한 이 커밋들은 NixOS 테스트 스위트 전체를 통과했습니다.
macOS/Darwin에서는
nixpkgs-*-darwin을 사용하십시오.이 브랜치들은 대부분의 Darwin 패키지가 미리 빌드되어 바이너리 캐시에서 가져올 수 있는 커밋을 가리킵니다.
그 밖의 플랫폼에서는 위의 브랜치 중 어느 것을 사용하든 상관없습니다.
Hydra는 다른 플랫폼용 바이너리를 미리 빌드하지 않습니다.
이 “채널 브랜치”들은 모두 대응하는 release-* 브랜치를 따릅니다.
예시
nixos-23.05와 nixpkgs-23.05-darwin은 모두 release-23.05를 기반으로 합니다.
롤링#
롤링 릴리스는 주 개발 브랜치인 master를 따릅니다.
Linux(NixOS 및 WSL 포함)에서는
nixos-unstable을 사용하십시오.그 밖의 플랫폼에서는
nixpkgs-unstable을 사용하십시오.
*-small 채널 브랜치는 더 작은 테스트 스위트를 통과한 브랜치입니다. 따라서 기반 브랜치의 최신 상태를 더 가깝게 따르지만, 안정성은 덜 보장됩니다.
샌드박스 빌드에도 아직 비순수성이 남아 있습니까?#
예, 있습니다. 다음과 같습니다.
CPU 아키텍처 — 네이티브 명령어를 컴파일하지 않고 하드코딩된 지원 명령어를 사용하도록 많은 노력을 기울이고 있습니다.
시스템의 현재 시각/날짜.
빌드에 사용되는 파일 시스템(
TMPDIR도 참고하십시오).다음과 같은 Linux 커널 매개변수:
binfmt 인터프리터(예:
boot.binfmt.emulatedSystems로 설정된 인터프리터).
빌드 시스템의 타이밍 동작 — 병렬 Make 빌드는 경우에 따라 올바른 입력을 받지 못할 수 있습니다.
무작위 값의 삽입(예:
/dev/random또는/dev/urandom에서 가져온 값).Nix 버전 간의 차이. 예를 들어 새 Nix 버전에서 새로운 환경 변수가 도입될 수 있습니다. Nix는
env > $out과 같은 구문이 앞으로도 동일한 출력을 낼 것이라고 보장하지 않습니다.