NixOS

덤프버전 :

분류

}}} ||

[ 펼치기 · 접기 ]




1. 개요
2. 특징
2.1. Nix


1. 개요[편집]


NixOS 홈페이지
Nix 홈페이지[1]
NixOS는 순수 함수형 패키지 매니저 Nix를 사용한 리눅스 배포판이다.


2. 특징[편집]



2.1. Nix[편집]


Nix는 리눅스유닉스 시스템에서 사용 가능한 크로스 플랫폼 패키지 매니저로, 순수 함수형 전개 모델을 사용한다. 여기서 순수 함수형이라 함은 함수형 언어에서 다루는 개념으로 파괴적 갱신을 허용하지 않으며 데이터가 영속성을 가지는 등의 특징이 있다. Nix는 이러한 개념들을 사용해 신뢰할 수 있고 재현 가능한 패키지 관리를 가능하게 한다.

Nix를 통해 설치된 패키지는 업데이트 될 때 이전 버전의 패키지를 지우지 않으며, 항상 새로운 위치에 설치된다. 이를 위해 Nix는 소프트웨어를 유닉스 관습에 따라
/usr
등의 위치에 설치하는 대신 패키지 고유의 암호화 해시 함수값을 디렉토리 이름에 넣은 별개의 위치에 저장한다. 해시 함수는 소프트웨어 이름, 버전, 설정등 빌드에 필요한 모든 입력에 의해 결정되기 때문에 다양한 버전의 소프트웨어를 동시에 사용할 수 있다.
소프트웨어 업데이트로 인해 의존성이 존재하지 않게된 패키지는 가비지 컬렉터 명령을 실행 시킴으로서 제거할 수 있다.

이런 구조로부터 얻을 수 있는 이점으로는 아래와 같은 것들이 있다.
  • 기존 소프트웨어를 지우지 않기 때문에 업데이트로 의존성이 깨지는 문제가 발생하지 않는다.
  • 소프트웨어 빌드 과정이 격리되어 있기 때문에 재현 가능성이 보장된다. 즉 여러개의 컴퓨터에서 똑같은 시스템을 구축하기 용이하다.
  • root권한 없이 소프트웨어 전역 설치가 가능하다. 여러 유저가 같은 패키지의 다른 버전을 동시에 설치할 수 있으며, 같은 버전의 소프트웨어는 정확히 한개만 설치된다. 유저는 소프트웨어 빌드 및 다운로드 과정에 간섭할 수 없기 때문에 다른 유저가 사용할 소프트웨어에 트로이 목마를 심는 등의 일을 할 수 없다.

아치 리눅스등의 rolling release 배포판이 시스템에 설치된 모든 소프트웨어를 최신버전으로 설치하도록 강제함으로서 의존성 문제를 해결하는 반면, Nix는 소프트웨어의 모든 버전을 설치하는 것을 가능하게 하여 의존성 문제를 해결한 셈이다.


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-11-01 03:33:30에 나무위키 NixOS 문서에서 가져왔습니다.

[1] 현재는 nixos.org로 리다이렉트 된다