나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-03-16 00:17:01

NixOS

{{{#!wiki style="margin: -10px -10px;"<tablebordercolor=#ffdf33> 파일:Linux 로고.svgLinux
배포판
}}} ||
{{{#!wiki style="margin:0 -10px -5px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
파일:데비안 심볼.svg
Debian APT
파일:우분투 아이콘.svg
Ubuntu
Ubuntu · Linux Mint · Kubuntu · Lubuntu · Ubuntu MATE · 하모니카 · elementary OS · Zorin OS · Xubuntu · JingOS · GalliumOS · Pop!_OS
Debian · Kali Linux · Crunchbang · 구름 OS · Kylin · Damn Small Linux · Slax · TmaxOS · Raspberry Pi OS · Tails OS · Whonix · Deepin · Endless OS · MX LinuxopenmediavaultAstra Linux · VyOS · Vanilla OS · Proxmox · TrueNAS SCALE
파일:페도라(운영체제) 심볼.svg
Fedora RPM
Red Hat
(RHEL)
Red Hat Enterprise Linux · Red Hat Linux · CentOS · Scientific Linux · Oracle Linux · 아시아눅스 · Rocky Linux · CBL-Mariner
Mandriva OpenMandriva Lx · Mageia · PCLinuxOS
MeeGo MeeGo · Tizen · Sailfish OS
Fedora · Amazon Linux · 붉은별 · Fedora Asahi Remix
파일:슬랙웨어 리눅스 로고.svg
Slackware slackpkg
Slackware Linux
파일:아치 리눅스 로고 2.svg
Arch pacman
Arch Linux · Manjaro Linux · EndeavourOS · Antergos · ArchBang Linux · Chakra Linux · SteamOS · Archcraft
파일:안드로이드(운영체제) 로고.svg파일:안드로이드(운영체제) 로고 컬러 화이트.svg
Android apk
Android Android-x86 · Bliss OS · Fire OS · Polaris OS · Phoenix OS · Project Sandcastle · Remix OS · Wear OS · Wear OS Powered by Samsung · 기타 Android 커스텀 펌웨어
파일:젠투 리눅스 로고.svg
Gentoo portage
ChromiumOS ChromiumOS · ChromeOS · ChromeOS Flex · Wayne OS · FydeOS · Whale OS
Gentoo Linux · Funtoo Linux
파일:Linux 로고.svg
기타
OpenWrt · NixOS · Solus · Alpine Linux · openSUSE · RouterOS · webOS · Puppy Linux · TinyCore Linux · postmarketOS · dahliaOS · 티맥스 윈도우 · Clear Linux* OS
}}}}}}}}} ||

<colbgcolor=#7EBAE4><colcolor=#fff> NixOS
파일:nixos.svg
홈페이지 https://nixos.org/

1. 개요2. Nix

1. 개요

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

2. Nix

Nix는 선언적 패키지 관리를 위한 소프트웨어 도구 및 프로그래밍 언어로, 높은 재현성과 신뢰성을 보장한다. 리눅스macOS 시스템에서 사용할 수 있다.
* 재현성(Reproducible) : 소프트웨어 패키지들을 격리된 환경에서 빌드하고, 의존성을 통제해서 높은 재현성을 확보한다. 즉 한 컴퓨터에서 패키지 빌드에 성공했다면, 다른 컴퓨터에서도 똑같은 빌드를 재현할 수 있다.
* 선언적(Declarative) : 소프트웨어 패키징에 특화된 선언적 프로그래밍 언어 nix를 사용한다.
* 신뢰성(Reliable) : 한 패키지를 업데이트 하는 일이 다른 패키지를 망가뜨리지 않도록 보장한다.
Nix를 통해 설치된 패키지는 업데이트 될 때 항상 새로운 위치에 설치되며, 이전 버전의 패키지도 지워지지 않고 남아있게 된다. 때문에 이전 버전의 패키지에 의존하는 다른 패키지가 깨지는 일이 발생하지 않는다. 의존하는 패키지가 없어 더 이상 필요가 없어진 패키지는 가비지 컬렉터를 통해 제거된다. 같은 프로그램이더라도 버전에 따라 다른 소프트웨어가 공존할 수 있어야 하므로, Nix는 소프트웨어를 /usr등의 위치에 설치하는 대신 특수한 암호화 해시값을 디렉토리 이름에 넣은 고유의 위치에 저장한다. 이 해시값은 소프트웨어 이름, 버전, 설정등 빌드에 필요한 모든 입력에 의해 결정된다. 루트 권한 없이 소프트웨어 전역 설치가 가능한 것도 장점이다. 여러 유저가 같은 패키지의 다른 버전을 동시에 설치할 수 있으면서도 같은 버전의 소프트웨어는 전역적으로 한개만 설치된다. 또 유저가 소프트웨어 빌드 및 다운로드 과정에 직접 간섭할 경우 패키지 고유의 해시값이 달라지기 때문에 다른 유저가 임의로 변경한 소프트웨어를 사용하게 될 걱정이 없다.

분류