The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступен пакетный менеджер GNU Guix 0.16 и дистрибутив GuixSD на его основе

07.12.2018 10:30

Проект GNU опубликовал пакетный менеджер GNU Guix 0.16 и построенный на его основе дистрибутив GNU/Linux - GuixSD (Guix System Distribution). Отмечается, что, скорее всего, данный выпуск станет последним перед формированием знакового релиза 1.0, так как все основные цели уже достигнуты. Дистрибутив допускает установку как в качестве обособленной ОС в системах виртуализации и на обычном оборудовании, так и запуск в уже установленных типовых окружениях GNU/Linux. Для загрузки сформированы образы для установки на USB Flash и использования в QEMU (170 Мб). Поддерживается работа на архитектурах i686, x86_64, armv7, aarch64 и mips64el.

Основные новшества:

  • Добавлены новые системные сервисы для ddclient, gitolite, iptables, pcscd, prometheus-node-exporter и varnish;
  • Обновлены версии программ в 1945 пакетах, добавлено 985 новых пакетов. В том числе обновлены версии gcc 8.2.0, ядро linux-libre 4.19.6, bash 4.4.23, binutils 2.31.1, cups 2.2.8, enlightenment 0.22.4, gdb 8.2, ghc 8.4.3, gimp 2.10.6, glibc 2.28, gnupg 2.2.11, go 1.11.1, icecat 60.3.0-gnu1, icedtea 3.7.0, libreoffice 6.1.3.2, , ocaml 4.07.1, octave 4.4.1, perl 5.28.0, python 3.7.0, rust 1.28.0, r 3.5.1, xorg-server 1.20.3;
  • Добавлен модуль "guix channels", предоставляющий возможность подключения к сторонним репозиториям пакетов (каналам). Поддержка каналов добавлена в команду "guix pull". Список каналов задаётся через файл ~/.config/guix/channels.scm;
  • Добавлена команда "guix pull --profile" для выбора активного профиля (по умолчанию ~/.config/guix/current), позволяющая наладить параллельную работу с несколькими ревизиями;
  • Добавлен модуль "guix describe" и одноимённая команда для отображения используемых ревизий и каналов;
    
       $ guix describe
       Generation 10	Sep 03 2018 17:32:44	(current)
         guix e0fa68c
           repository URL: https://git.savannah.gnu.org/git/guix.git
           branch: master
           commit: e0fa68c7718fffd33d81af415279d6ddb518f727
    
  • Добавлен модуль "guix inferior" для взаимодействия с другими экземплярами (ревизиями репозитория) Guix, что может применяться, например, для сборки пакета из другой ревизии Guix или отображения различий между ревизиями. Для вывода списка новых и обновлённых пакетов реализована новая команда "guix pull -l", для замены ревизии - "guix repl", а для просмотра запущенных guix-процессов - "guix processes". В Manifest-файлах теперь могут указываться ссылки на произвольные коммиты Guix;
  • В команды для работы с пакетом добавлены опции "--with-branch" и "--with-commit", позволяющие извлечь пакет из Git-репозитория, используя определённую ветку или коммит;
  • В утилитах командной строки обеспечен более наглядный вывод информации с подсвечиванием важных событий. Из вывода команд "guix packagе" и "guix system" исключены логи сборки, а в "guix build" выделены цветом важные события при сборке;
  • Добавлен модуль с поддержкой архива Software Heritage и возможностью выполнения через него операций "git checkout". В дополнение к поддержке повторяемых сборок, позволяющих убедиться в тождественности бинарной сборки эталонным исходным текстам, добавлена возможность повторяемой загрузки исходных текстов. В случае, если репозиторий из которого собран пакет перестал существовать, теперь код можно загрузить из архива Software Heritage;
  • URL с репозиторием для загрузки уже собранных бинарных пакетов (substitute URL) изменён на https://ci.guix.info;
  • Сервисный менеджер GNU Shepherd обновлён до версии 0.5.0, в которой добавлена возможность определения замены сервисов, обеспечен перезапуск всех зависимых сервисов при перезапуске родительского сервиса и реализована функциональность для определения собственных действий в сервисах. В команде "guix system reconfigure" добавлена поддержка загрузки замен сервисов, определённых в Shepherd;
  • Добавлены команды "herd schedule mcron" и "herd statistics nscd" доя отображения запланированных в cron заданий и статистики DNS-сервера nscd;
  • В команды "guix import pypi", "guix import hackage" и "guix import stackage" добавлена опция "--recursive" для выполнения рекурсивных запросов;
  • В число обязательных зависимостей к Guix включены модули Guile-Gcrypt и Guile-JSON;
  • В дистрибутиве обеспечена самодостаточная сборка (bootstrap) компилятора Rust (пакет mrustc) из исходных текстов;
  • Добавлен модуль "guix status" для формирования индикатора прогресса выполнения операций;
  • Добавлены новые сборочные системы: clojure и guile.

Напомним, что пакетный менеджер GNU Guix основан на наработках проекта Nix и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.

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

Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f42d4878f3a0b426064a6a54a0c6f92-firefox-63.0.0/, где "f42d48..." является уникальным идентификатором пакета, используемым для контроля зависимостей.

Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 8. В качестве системы инициализации используется сервисный менеджер GNU Shepherd (бывший dmd), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовый образ поддерживает работу в консольном режиме, но для установки подготовлено 8715 готовых пакетов, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, а также ряд программ на базе библиотеки GTK+.

  1. Главная ссылка к новости (http://lists.gnu.org/archive/h...)
  2. OpenNews: Выпуск системы инициализации GNU Shepherd 0.5
  3. OpenNews: Выпуск GNU Mes 0.17, инструментария для самодостаточной сборки дистрибутивов
  4. OpenNews: Доступен пакетный менеджер GNU Guix 0.15 и дистрибутив GuixSD на его основе
  5. OpenNews: Доступен полностью свободный Linux-дистрибутив Trisquel 8.0
  6. OpenNews: Выпуск дистрибутива NixOS 18.09, использующего пакетный менеджер Nix
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49735-guix
Ключевые слова: guix
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (16) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, proninyaroslav (ok), 11:09, 07/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Добавлены новые сборочные системы: clojure и guile.

    Знающие люди, подскажите: clojure всё таки выстрелил или так и остался хипстерским языком?

     
     
  • 2.12, Аноним (12), 17:14, 07/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Себе в ногу.
    Чем GCL не устраивает?
     
  • 2.21, Аноним (21), 11:37, 10/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Выстрелил... в качестве хипстерского языка. Там есть хорошие идеи, но в целом Clojure больше принадлежит современной эмпирической культуре программирования (тыкать, пока не заработает). Синтаксис мозгобольной совершенно: квадратные скобки означают вектор, круглые — список, у векторов и списков разные характеристики производительности, но в синтаксисе они используются не поэтому, а просто потому что разные скобки и их можно различать, т. е. одно и то же одновременно используется для обозначения совершенно ортогональных вещей. Кроме того, стремление авторов избавиться во многих конструкциях от "лишних" скобок делает Clojure неудобным для структурного редактирования (paredit), т. е. убивает один из главных кайфов от работы с Лиспом.
     

  • 1.3, Аноним (3), 11:13, 07/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Там по прежнему без танцев с бубном установить на убунту нельзя?
     
     
  • 2.18, Аноним (18), 05:10, 10/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Без каких имено танцев с бубном? На убунту guix ставится так же, как и на любой другой дистрибутив.
     

  • 1.4, Аноним (4), 12:07, 07/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В качестве системы инициализации используется сервисный менеджер GNU Shepherd

    Подскажите, он поддерживает паралельный запуск демонов или нет?

     
  • 1.5, J.L. (?), 13:26, 07/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Добавлен модуль с поддержкой архива Software Heritage

    на сайте в списке указан Debian, это теперь в GuixSD можно поставить любой пакет из основных репов дебиана?

     
  • 1.11, Аноним (12), 17:12, 07/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Не хватает пакетов с Plasma 5, KDE Frameworks, KDE Applications.
     
     
  • 2.17, Аноним (18), 05:07, 10/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Есть там это всё.
    http://guix.info/packages/K/
     
     
  • 3.23, Аноним (23), 09:05, 27/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А где там плазма? Вижу только frameworks.
     

  • 1.13, Аноним (12), 17:17, 07/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В дистрибутиве обеспечена самодостаточная сборка (bootstrap) компилятора Rust (пакет mrustc) из исходных текстов;

    Надеюсь, не требующая шланго-ллвэмов.

     
  • 1.14, Аноним (-), 18:01, 07/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Было забавно узнать, что в этом дистре store расположен по /guix/store и только это ломает бинарную совместимость с Nix, на уровне библиотек. Ведь как ещё создать условия для героического переписывания пакетной базы, которая уже есть в nixpkg ради идеи, чтобы всё было на Guile вместо Nix. А казалось бы, не такая уж разница, какой из этих недоязычков использовать.
     
     
  • 2.19, Andrey Mitrofanov (?), 09:36, 10/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Было забавно узнать, что в этом дистре store расположен по /guix/store и
    > только это ломает бинарную совместимость с Nix, на уровне библиотек. Ведь
    > как ещё создать условия для героического переписывания пакетной базы, которая уже
    > есть в nixpkg ради идеи, чтобы всё было на Guile вместо
    > Nix. А казалось бы, не такая уж разница, какой из этих
    > недоязычков использовать.

    Всё мировое дистрибуто строение построено на "героическом переписывании пакетной базы".  Пререписывание rpm-бейзед Вас не смущало все эти десятилетия, а вот GNU Guix обратил на себя Ваше внимание.  Ему д.б. лестно, да.

     
  • 2.22, Аноним (21), 10:21, 11/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какой смысл использовать объединенное хранилище, если у всех пакетов (начиная с glibc, и, как следствие, у всего, что от него зависит) все равно будут различные хеш-коды (они порождены различными выводами), т. е. в хранилище будет два несвязанных графа пакетов? И демон для управления хранилищем тоже придется делать общим, а это если не сейчас, то в будущем будет создавать проблемы из-за необходимости поддержки демона, который был бы совместим с обоими дистрибутивами одновременно.
     

  • 1.15, user90 (?), 18:15, 07/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо за перевод, лень было вникать в чейнжлог - просто обновляюсь и все.

    > и только это ломает бинарную совместимость с Nix

    Переживем)) Впрочем импорт nixpkg тоже заявлен, согласно мануалу.

     
     
  • 2.20, Andrey Mitrofanov (?), 10:39, 10/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Спасибо за перевод, лень было вникать в чейнжлог - просто обновляюсь и
    > все.
    >> и только это ломает бинарную совместимость с Nix
    > Переживем)) Впрочем импорт nixpkg тоже заявлен, согласно мануалу.

    Вы правильно употребили слово "заявлен".  Как мне кажется.

    Я поясню подробнее мой стёртый модератором, за "неповторимый" стиль, коммент#8:
       [I]"" [...] копипаста про nixpkgs, качующая, из новости в новость про САБЖ [...]""[/I]

    Так вот, глядя на следующиё текст в новости:
    [I]"" Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории Nixpkgs. ""[/I]
    -- нужно понимать, что _двоичные_ (=собранные) пакеты из реп Nix нет "возможности использовать" ни в пакетном менеджере Guix, ни в ОС GNU GuixSD.

    Двоичные можно разве что использовать, поставив Guix "вторым" пакетным менеджером в установку NixOS.  Про установку Nix "вторым" в GuixSD не слышал, про пересборку Guix с изменением путей к /store и БД и использование демона сборки Nix  написано в мануалею.  Но это ещё больше камлания с бубном, чем "просто" установка Guix, с, как мне кажется, весьма неочевидными последствиями...

    Из Nixpkgs можно "импортировать" скрипты сборки.  Но и это больше _портирование_, чем "использование".

    Импорт пакетов, что с npm-а, например, что с nixpkgs, насколько я не понимаю суть вопроса, создаёт _болванку_ скрипта сборки пакета (или группы пакетов) для Guix.  А дальше либо соберётся, либо не соберётся.  Если не собёрётся -- нужен хакер, чтоб его добить до собираемости.  Когда же соберётся, может заработать, а может не заработать.  Если не заработал, нужен ...  И далее всё то же самое по кругу.

    Может, оно и обычно/всегда работает, может нет.   Я теоретизирую.  Давайте выслушаем практиков процеса.  Джентельмены?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру