GNU Guix

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
GNU Guix
Guix logo.svg
Тип менеджер пакунків
Розробник проект GNU[d][1]
Стабільний випуск 1.0.0[2] (2 травня, 2019; 3 місяці тому (2019-05-02))
Репозиторій git.savannah.gnu.org/cgit/guix.git/
Операційна система GNU, GNU/Linux[d] і GNU Hurd
Написано на Guile Scheme, C++ (Nix core)
Ліцензія GPLv3+
www.gnu.org/software/guix/

GNU Guix у Вікісховищі?

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

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

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

2 травня 2019 відбувся[7] перший стабільний реліз 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. а б https://www.gnu.org/software/guix/about/
  2. Ludovic Courtès (2019-05-02). GNU Guix 1.0.0 released. Процитовано 2019-05-02. 
  3. Introducing GNU Guix
  4. Re: A GNU Distribution
  5. [GSoC update] Porting Guix to GNU/Hurd
  6. GNU Guix Package Manager Ported To GNU Hurd — Phoronix
  7. GNU Guix 1.0.0 released