이 사이트는 의 를 yeokja로 기계 번역한 비공식 한국어판입니다. 정확한 내용은 원문을 확인하세요.

Nix

CLI이자 패키지 관리자이자 프로그래밍 언어

개념/Nix

먼저 Nix 빠른 시작부터 따라가고, 개념 문서는 주로 보충 설명이 필요할 때 참고하기를 권합니다. 오른쪽의x를 누르면 모든 개념 문서에서 이 안내를 숨길 수 있습니다.

Nix는 여러 가지를 가리키기 때문에 다소 헷갈릴 수 있는 용어입니다:

  1. 순수 함수형 프로그래밍 언어
  2. Nix CLI
  3. Nix 패키지 관리 시스템 전반

이들은 모두 서로 밀접하게 연관되어 있으므로 하나의 도구로 생각해야 합니다. 이 문서에서는 Nix의 이 세 가지 측면을 각각 살펴보겠습니다.

Nix와 오픈 소스

Nix 프로젝트는 완전한 오픈 소스이며, 주로 GitHub의 NixOS 조직에서 개발됩니다. LGPL 2.1 라이선스를 따르며, 이 라이선스는 일반적으로 상업적 사용에 상당히 관대합니다.

저희 Determinate Systems는 수많은 재능 있는 개인들과 함께 오픈 소스 프로젝트인 Nix에 적극적으로 기여해 왔으며, Nix를 더 좋게 만들겠다는 사명의 일환으로 앞으로도 계속 기여할 것입니다. 또한 저희는 기업용 Nix 다운스트림 배포판인 Determinate Nix도 만들었습니다.

Nix CLI

현재 두 가지 Nix CLI가 사용되고 있습니다:

통합 CLI

통합 CLI는 nix라는 실행 파일 하나만 사용하는, 아직 실험 단계인 Nix 사용 방식입니다. 기존 nix-build 도구 대신 패키지를 빌드하는 nix build, 기존 nix-shell 도구 대신 Nix 개발 환경을 활성화하는 nix develop, 기존 nix-store 도구 대신 Nix 스토어를 관리하는 nix store 등의 명령어를 비롯해 모든 Nix 기능이 이 도구 하나에 담겨 있습니다. 통합 CLI는 아직 공식 CLI가 아니므로, Nix 설정의 experimental-features 목록에 nix-command를 추가하여 명시적으로 활성화해야 합니다.

Determinate Nix Installer가 통합 CLI를 설치하고 Nix 설정에서 활성화까지 해 주므로, 여기서는 통합 CLI 설정 방법을 다루지 않습니다.

기존 CLI

Nix의 기존 CLI는 여전히 공식 CLI이지만, 앞서 언급했듯이 다음 두 가지 이유로 Nix를 처음 사용하는 분에게는 권장하지 않습니다:

  1. 플레이크가 등장하기 전에 만들어졌기 때문에 Nix 플레이크와 호환되지 않습니다.
  2. 패키지를 빌드하는 nix-build, Nix 개발 환경을 위한 nix-shell, Nix 스토어를 관리하는 nix-store 등 여러 가지 CLI 도구를 익혀야 하므로, 통합 CLI에 비해 인지적 부담이 상당히 큽니다.

Determinate Nix Installer는 기본적으로 통합 CLI를 활성화하지만, 기존 CLI의 도구도 계속 사용할 수 있도록 남겨 둡니다.