Nix
| Тип | пакетний менеджер |
|---|---|
| Розробник | Eelco Dolstrad |
| Стабільний випуск | 2.34.5[1] |
| Платформа | 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]
Див. також
Примітки
- ↑ Release 2.34.5.
- ↑ NixBSD
- ↑ OpenBSD Ports Readme: port sysutils/nix
- ↑ Nix fixes dependency hell on all Linux distributions [Архівовано 2018-06-22 у Wayback Machine.] / Linux.com, 2008
Nix — инструмент, помогающий выбраться из «ада зависимостей» [Архівовано 2021-05-11 у Wayback Machine.], 25 января 2009 - ↑ NixOS Linux. Архів оригіналу за 12 липня 2017. Процитовано 6 липня 2018.
- ↑ Nixpkgs unstable repository information - Repology. Архів оригіналу за 15 січня 2025.
- ↑ Repository statistics - Repology.
- ↑ RFC 0046 - Platform Support Tiers. GitHub.
- ↑ NixOS official binary cache.
- ↑ Nixpkgs github repository. GitHub.
- ↑ Nix & NixOS | Reproducible builds and deployments. nixos.org.
- ↑ 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.
- ↑ Burr, Chris; Clemencic, Marco; Couturier, Ben (2018). Software packaging and distribution for LHCb using Nix (PDF).
- ↑ Replit (25 травня 2023). Replit — Super Colliding Nix Stores: Nix Flakes for Millions of Developers. Replit Blog. Процитовано 5 березня 2024.
- ↑ Customize your IDX workspace | Project IDX. Google for Developers (англ.). Процитовано 5 березня 2024.
Посилання
- Офіційний сайт
- Репозиторій Nixpkgs
- Nix Language // Nix 2.28.5 Reference Manual.
- Порівняння Zero Install і системи Nix : [англ.] : [арх. 17.07.2025] // docs.0install.net. — Дата звернення: 17.07.2025.
- Re: Adoption of Nix? : [арх. 14.04.2013] / Daniel Burrows // Lists.debian.org. — 2008. — 24 December. — Дата звернення: 17.07.2025. (Критика розробника Debian.)
- Purely Functional Configuration Management with Nix and NixOS : [арх. 17 липня 2025] / Eelco Dolstra // InfoQ. — 2014. — 8 January. — Дата звернення: 17.07.2025.
- Функциональный менеджер пакетов Nix. Часть 1. Базовое использование / Константин Черемнов // IBM Developer. — 2010. — 1 апреля. — Дата звернення: 11.06.2020.
- Выбор пакетного менеджера для многоверсионных приложений : [арх. 17 липня 2025] / В. А. Галатенко, М. Д. Дзабраев, К. А. Костюхин // Программные продукты и системы. — 2018. — Т. 31, № 3 (31). — С. 469—474. — doi:10.15827/0236-235X.123.469-474.