GNU Guix — Вікіпедія

GNU Guix
Тип менеджер пакунків
Автор Ludovic Courtèsd[1]
Розробник проєкт GNU[2]
Стабільний випуск 1.2.0[3] (23 листопада 2020; 3 роки тому (2020-11-23))
Операційна система GNU/Linux[d] і GNU/Hurd[d]
Мова програмування Guile Scheme, C++ (Nix core)
Ліцензія GPLv3+
Онлайн-документація guix.gnu.org/manual/
Репозиторій git.savannah.gnu.org/cgit/guix.git
Вебсайт www.gnu.org/software/guix/

GNU Guix (/ɡiːks/) — менеджер пакунків для Unix-подібних операційних систем, заснований на менеджері пакунків Nix з API Guile Scheme зі спеціалізацією на наданні виключно вільного програмного забезпечення.

Історія[ред. | ред. код]

У листопаді 2012 року GNU Project оголосив перший випуск GNU Guix, функціонального менеджера пакетів на основі Nix package manager, який надає, крім іншого, API-інтерфейси Guile Scheme[4]. Проект був створений в червні 2012 року Людовіком Куртесом (Ludovic Courtès), одним з програмістів GNU Guile[5]. 20 серпня 2015 року було оголошено, що Guix був портований для GNU Hurd[6], таким чином він став першим менеджером пакунків для Hurd[7].

2 травня 2019 відбувся[8] перший стабільний реліз GNU Guix 1.0 і побудованого на його основі дистрибутиву GuixSD GNU/Linux (Guix System Distribution). Значна зміна номера версії обумовлена завершенням реалізації всіх цілей, поставлених для формування знакового релізу. Випуск підбив підсумок семи років роботи над проектом і визнаний готовим для повсякденного використання. Для завантаження сформовані образи для установки на USB Flash (243 Мб) і використання в системах віртуалізації (474 Мб). Підтримується робота на архітектурі i686, x86_64, ARMv7 і aarch64.

Огляд[ред. | ред. код]

Крім типових функцій управління пакетами підтримує такі можливості, як виконання транзакційних оновлень, можливість відкоту оновлень, робота без отримання привілеїв суперкористувача, підтримка прив'язаних до окремих користувачів профілів, можливість одночасної установки декількох версій однієї програми, засоби прибирання сміття (виявлення і видалення невикористовуваних версій пакунків). Для визначення сценаріїв складання застосунків і правил формування пакунків пропонується використовувати спеціалізовану високорівневу предметно-орієнтовану мову і компоненти Guile Scheme API, що дозволяють виконувати всі операції з управлінню пакунками на функційній мові програмування Scheme.

Підтримується можливість використання пакунків, підготовлених для пакетного менеджера Nix і розміщених в репозиторії Nixpkgs. Крім операцій з пакунками можливе створення сценаріїв для управління конфігурацією застосунків. При складанні пакету автоматично завантажуються і збираються всі пов'язані з ним залежності. Можливе як завантаження готових бінарних пакунків з репозиторію, так і складання з сирців з усіма залежностями. Реалізовано засоби для підтримки версій встановлених програм в актуальному стані через організацію установки оновлень з зовнішнього сховища.

Складальне оточення для пакетів формується у вигляді контейнера, що містить всі необхідні для роботи застосунків компоненти, що дозволяє сформувати набір пакунків, здатний працювати без оглядки на склад базового системного оточення дистрибутиву, в якому Guix використовується як надбудова. Між пакетами Guix можливе визначення залежностей, при цьому для пошуку наявності вже встановлених залежностей використовується сканування хеш-ідентифікаторів в директорії встановлених пакетів. Пакети встановлюються в окреме дерево директорій або піддиректорію в каталозі користувача, що дозволяє забезпечити його паралельне співіснування з іншими пакетними менеджерами і забезпечити підтримку широкого спектра існуючих дистрибутивів. Наприклад, пакет встановлюється як /nix/store/f42d5878f3a0b426064a2b64a0c6f92-firefox-66.0.0/,

На основі пакетного менеджера GNU Guix побудований дистрибутив GuixSD GNU/Linux (Guix System Distribution).

Посилання[ред. | ред. код]

Виноски[ред. | ред. код]

  1. Communauté Wikimédia Informatique : le projet GNU annonce la sortie d'un nouveau gestionnaire de paquets — 2012.
  2. https://www.gnu.org/software/guix/about/
  3. Ludovic Courtès (23 листопада 2020). GNU Guix 1.2.0 released. Архів оригіналу за 28 січня 2021. Процитовано 23 листопада 2020.
  4. Introducing GNU Guix. Архів оригіналу за 13 травня 2013. Процитовано 3 травня 2019.
  5. Re: A GNU Distribution. Архів оригіналу за 13 травня 2013. Процитовано 3 травня 2019.
  6. [GSoC update] Porting Guix to GNU/Hurd. Архів оригіналу за 3 листопада 2015. Процитовано 3 травня 2019.
  7. GNU Guix Package Manager Ported To GNU Hurd — Phoronix. Архів оригіналу за 25 вересня 2015. Процитовано 3 травня 2019.
  8. GNU Guix 1.0.0 released. Архів оригіналу за 2 травня 2019. Процитовано 3 травня 2019.