문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 NixOS (문서 편집) [include(틀:Linux)] [목차] == 개요 == [[https://nixos.org/|NixOS 홈페이지]] [[https://nixos.org/nix/|Nix 홈페이지]][* 현재는 nixos.org로 리다이렉트 된다] NixOS는 순수 함수형 패키지 매니저 Nix를 사용한 [[Linux|리눅스]] 배포판이다. == 특징 == === Nix === Nix는 [[Linux|리눅스]]및 [[유닉스]] 시스템에서 사용 가능한 크로스 플랫폼 패키지 매니저로, 순수 함수형 전개 모델을 사용한다. 여기서 순수 함수형이라 함은 [[함수형 언어]]에서 다루는 개념으로 파괴적 갱신을 허용하지 않으며 데이터가 영속성을 가지는 등의 특징이 있다. Nix는 이러한 개념들을 사용해 신뢰할 수 있고 재현 가능한 패키지 관리를 가능하게 한다. Nix를 통해 설치된 패키지는 업데이트 될 때 이전 버전의 패키지를 지우지 않으며, 항상 새로운 위치에 설치된다. 이를 위해 Nix는 소프트웨어를 [[유닉스]] 관습에 따라 {{{/usr}}}등의 위치에 설치하는 대신 패키지 고유의 암호화 해시 함수값을 디렉토리 이름에 넣은 별개의 위치에 저장한다. 해시 함수는 소프트웨어 이름, 버전, 설정등 빌드에 필요한 모든 입력에 의해 결정되기 때문에 다양한 버전의 소프트웨어를 동시에 사용할 수 있다. 소프트웨어 업데이트로 인해 의존성이 존재하지 않게된 패키지는 가비지 컬렉터 명령을 실행 시킴으로서 제거할 수 있다. 이런 구조로부터 얻을 수 있는 이점으로는 아래와 같은 것들이 있다. * 기존 소프트웨어를 지우지 않기 때문에 업데이트로 의존성이 깨지는 문제가 발생하지 않는다. * 소프트웨어 빌드 과정이 격리되어 있기 때문에 재현 가능성이 보장된다. 즉 여러개의 컴퓨터에서 똑같은 시스템을 구축하기 용이하다. * root권한 없이 소프트웨어 전역 설치가 가능하다. 여러 유저가 같은 패키지의 다른 버전을 동시에 설치할 수 있으며, 같은 버전의 소프트웨어는 정확히 한개만 설치된다. 유저는 소프트웨어 빌드 및 다운로드 과정에 간섭할 수 없기 때문에 다른 유저가 사용할 소프트웨어에 트로이 목마를 심는 등의 일을 할 수 없다. [[아치 리눅스]]등의 rolling release 배포판이 시스템에 설치된 모든 소프트웨어를 최신버전으로 설치하도록 강제함으로서 의존성 문제를 해결하는 반면, Nix는 소프트웨어의 모든 버전을 설치하는 것을 가능하게 하여 의존성 문제를 해결한 셈이다. [[분류:Linux]]저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기