Nix

Nix
Типпакетний менеджер
РозробникEelco Dolstrad Редагувати інформацію у Вікіданих
Стабільний випуск2.34.5[1] Редагувати інформацію у Вікіданих (7 квітня 2026)
ПлатформаLinux, Unix-подібні ОС
Операційна системаLinux, Apple Darwin, FreeBSD[2] і OpenBSD[3] Редагувати інформацію у Вікіданих
Мова програмуванняC++
Стан розробкионовлюється
ЛіцензіяLGPL
Онлайн-документаціяnix.dev(англ.) Редагувати інформацію у Вікіданих
Репозиторійgithub.com/NixOS/nix
Вебсайтnixos.org/nix

Nix — кросплатформний пакетний менеджер, що використовує так звану функціональну модель впровадження, в якій компоненти програмного забезпечення встановлено в каталоги, створені через криптографічні хеші, а залежності від кожного компонента включені в кожен хеш, тим самим вирішується проблема пекла залежностей[4].

Для визначення пакетів використовується спеціально розроблена для системи мова функціонального програмування, що використовує стратегію лінивих обчислень.

Підтримуються операційні системи Linux (де може працювати паралельно з існуючим менеджером пакетів) та macOS. NixOS[5] — дистрибутив Linux, цілком орієнтований на пакетний менеджер Nix.

На основі пакетного менеджера Nix створено пакетний менеджер GNU Guix.

Nixpkgs

Nixpkgs — це репозиторій пакетів, побудований на базі менеджера пакетів Nix. Згідно з Repology, станом на січень 2025 року, він містить понад 122 000 пакетів[6] та має більшу кількість оновлених пакетів, ніж будь-який інший репозиторій пакетів.[7] Операційні системи, що підтримуються Nixpkgs, це переважно Linux та Darwin, з деякою підтримкою варіантів Windows та BSD. Підтримувані архітектури процесорів включають 64-розрядні x86 та ARM. Пакети для цих архітектур збираються регулярно за допомогою служби безперервної інтеграції під назвою Hydra[8], а результати цих збірок завантажуються до публічного бінарного кешу.[9] Коли Nix встановлює пакет, він перевіряє цей кеш та завантажує бінарний пакет, щоб уникнути його локального збирання.

Nixpkgs розробляється в одному репозиторії Git на GitHub.[10] Окрім пакетів, він також містить вихідний код NixOS .

Проекти з використанням Nix

NixOS [11] — це дистрибутив Linux, який використовує Nix для керування всією конфігурацією системи, включаючи ядро Linux.[12]

Nix використовується для пакування та розповсюдження програмного забезпечення в експерименті CERN LHCb.[13] Nix лежить в основі платформ розподіленої розробки програмного забезпечення Replit [14] та Firebase Studio.[15]

Див. також

  • GNU Guix — менеджер пакунків, заснований на Nix
  • NixOS

Примітки

  1. Release 2.34.5.
  2. NixBSD
  3. OpenBSD Ports Readme: port sysutils/nix
  4. Nix fixes dependency hell on all Linux distributions [Архівовано 2018-06-22 у Wayback Machine.] / Linux.com, 2008

    Nix — инструмент, помогающий выбраться из «ада зависимостей» [Архівовано 2021-05-11 у Wayback Machine.], 25 января 2009
  5. NixOS Linux. Архів оригіналу за 12 липня 2017. Процитовано 6 липня 2018.
  6. Nixpkgs unstable repository information - Repology. Архів оригіналу за 15 січня 2025.
  7. Repository statistics - Repology.
  8. RFC 0046 - Platform Support Tiers. GitHub.
  9. NixOS official binary cache.
  10. Nixpkgs github repository. GitHub.
  11. Nix & NixOS | Reproducible builds and deployments. nixos.org.
  12. Dolstra, Eelco; Löh, Andres; Pierron, Nicolas (Вересень 2008). NixOS: A Purely Functional Linux Distribution (PDF). ICFP 2008: 13th ACM SIGPLAN International Conference on Functional Programming. с. 367—378.
  13. Burr, Chris; Clemencic, Marco; Couturier, Ben (2018). Software packaging and distribution for LHCb using Nix (PDF).
  14. Replit (25 травня 2023). Replit — Super Colliding Nix Stores: Nix Flakes for Millions of Developers. Replit Blog. Процитовано 5 березня 2024.
  15. Customize your IDX workspace | Project IDX. Google for Developers (англ.). Процитовано 5 березня 2024.

Посилання