NixOS
최근 수정 시각: (5년 전)
분류
1. 개요 [편집]
NixOS는 순수 함수형 패키지 매니저 Nix를 사용한 리눅스 배포판이다.
2. 특징 [편집]
2.1. Nix [편집]
Nix를 통해 설치된 패키지는 업데이트 될 때 이전 버전의 패키지를 지우지 않으며, 항상 새로운 위치에 설치된다. 이를 위해 Nix는 소프트웨어를 유닉스관습을 따라
소프트웨어 업데이트로 인해 의존성이 존재하지 않게된 패키지는 가비지 컬렉터 명령을 실행 시킴으로서 제거할 수 있다.
/usr등의 위치에 설치하는 대신 패키지 고유의 암호화 해시 함수값을 디렉토리 이름에 넣은 별개의 위치에 저장한다. 해시 함수는 소프트웨어 이름, 버전, 설정등 빌드에 필요한 모든 입력에 의해 결정되기 때문에 다양한 버전의 소프트웨어를 동시에 사용할 수 있다.소프트웨어 업데이트로 인해 의존성이 존재하지 않게된 패키지는 가비지 컬렉터 명령을 실행 시킴으로서 제거할 수 있다.
이런 구조로부터 얻을 수 있는 이점으로는 아래와 같은 것들이 있다.
- 기존 소프트웨어를 지우지 않기 때문에 업데이트로 의존성이 깨지는 문제가 발생하지 않는다.
- 소프트웨어 빌드 과정이 격리되어 있기 때문에 재현 가능성이 보장된다. 즉 여러개의 컴퓨터에서 똑같은 시스템을 구축하기 용이하다.
- root권한 없이 소프트웨어 전역 설치가 가능하다. 여러 유저가 같은 패키지의 다른 버전을 동시에 설치할 수 있으며, 같은 버전의 소프트웨어는 정확히 한개만 설치된다. 유저는 소프트웨어 빌드 및 다운로드 과정에 간섭할 수 없기 때문에 다른 유저가 사용할 소프트웨어에 트로이 목마를 심는 등의 일을 할 수 없다.
아치 리눅스등의 rolling release 배포판이 시스템에 설치된 모든 소프트웨어를 최신버전으로 설치하도록 강제함으로서 의존성 문제를 해결하는 반면, Nix는 소프트웨어의 모든 버전을 설치하는 것을 가능하게 하여 의존성 문제를 해결한 셈이다.
라이선스를 별도로 명시하지 않은 문서는 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다.
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.
문서의 기여자는 역사 탭에서 확인할 수 있습니다.
접두어의 N: - 나무위키 사용자, R: - 리그베다 위키의 사용자를 뜻합니다.
자세한 사항은 나무위키에서 동일한 문서의 역사를 참고하시기 바랍니다.