Проект GNU представил (http://lists.gnu.org/archive/html/guix-devel/2017-05/msg0037...) выпуск пакетного менеджера GNU Guix 0.13 (http://www.gnu.org/software/guix/) и построенного на его основе дистрибутива GNU/Linux - GuixSD (Guix System Distribution). Допускается установка как в качестве обособленной ОС (http://www.gnu.org/software/guix/manual/html_node/System-Ins...) в системах виртуализации и на обычном оборудовании, так и запуск (http://www.gnu.org/software/guix/manual/html_node/Installati...) в уже установленных типовых окружениях GNU/Linux. Для загрузки сформированы (ftp://alpha.gnu.org/gnu/guix/) образы для установки на USB Flash и использования в QEMU (156 Мб). Поддерживается работа на архитектурах i686, x86_64, armv7, aarch64 и mips64el.Пакетный менеджер GNU Guix основан на наработках проекта Nix (http://nixos.org/nix/) и кроме типичных функций управления пакетами поддерживает такие возможности, как выполнение транзакционных обновлений, возможность отката обновлений, работа без получения привилегий суперпользователя, поддержка привязанных к отдельным пользователям профилей, возможность одновременной установки нескольких версий одной программы, средства уборки мусора (выявление и удаление неиспользуемых версий пакетов). Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme.
Поддерживается возможность использования пакетов, подготовленных для пакетного менеджера Nix и размещённых в репозитории
Nixpkgs (http://nixos.org/nixpkgs/). Кроме операций с пакетами возможно создание сценариев для управления конфигурацией приложений. При сборке пакета автоматически загружаются и собираются все связанные с ним зависимости. Возможна как загрузка готовых бинарных пакетов из репозитория, так и сборка из исходных текстов со всеми зависимостями. Реализованы средства для поддержания версий установленных программ в актуальном состоянии через организацию установки обновлений из внешнего репозитория.Сборочное окружение для пакетов формируется в виде контейнера, содержащего все необходимые для работы приложений компоненты, что позволяет сформировать набор пакетов, способный работать без оглядки на состав базового системного окружения дистрибутива, в котором Guix используется в качестве надстройки. Между пакетами Guix возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в директории установленных пакетов. Пакеты устанавливаются в отдельное дерево директорий или поддиректорию в каталоге пользователя, что позволяет обеспечить его параллельное сосуществование с другими пакетными менеджерами и обеспечить поддержку широкого спектра существующих дистрибутивов. Например, пакет устанавливается как /nix/store/f42d69df5d8a0b526064a4e54a7c6f02-firefox-53.0.0/, где "f42d69..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
Дистрибутив включает только свободные компоненты и поставляется с ядром GNU Linux-Libre 4.11, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 7. В качестве системы инициализации используется сервисный менеджер GNU Shepherd (https://www.gnu.org/software/shepherd/) (бывший dmd (https://www.gnu.org/software/shepherd/#history)), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовые образ поддерживает работу в консольном режиме, но для установки подготовлено (http://www.gnu.org/software/guix/package-list.html) более 5400 готовых пакетов, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, а также ряд программ на базе библиотеки GTK+.Основные новшества:
- Добавлена поддержка архитектуры aarch64 (ARM64), но бинарные установочные архивы пока не формируются из-за неготовности сборочной инфраструктуры;- Прекращено формирование установочных сборок mips64el. Поддержка самой архитектуры пока сохранена, но останется ли она в дальнейшем будет зависеть от наличия заинтересованных разработчиков;
- В сборки GuixSD добавлена поддержка загрузки на системах с UEFI и возможность установки на разделы с Btrfs;
- В GuixSD обеспечена (https://www.gnu.org/software/guix/news/running-system-servic...) возможность запуска системных сервисов (фоновых процессов) в изолированных контейнерах, что позволяет защитить систему от возможных уязвимостей в данных сервисах;- По сравнению с прошлым выпуском добавлено 840 новых пакетов, в том числе сформированы пакеты с 0 A.D, freeciv, freedoom, alpine, alsa-plugins, cargo,
cdrtools, ceph, freerdp, freetalk, neovim, scrypt, stunnel, unrar, xinetd;- Обновлены версии программ в 1220 пакетах, в том числе glibc 2.25, Linux-libre 4.11 и GCC 7.
- Добавлены новые системные сервисы для Redis, Exim и Open vSwitch, значительно улучшен интерфейс сервиса Nginx;
- Реализована новая команда "guix pack (https://www.gnu.org/software/guix/manual/html_node/Invoking-...)", предназначенная для создания (https://www.gnu.org/software/guix/news/creating-bundles-with...) бинарных пакетов;- В Guix обеспечена поддержка работы с использованием новой версии GNU Guile 2.2;
- В команду "guix publish (https://www.gnu.org/software/guix/manual/html_node/Invoking-...)" добавлена опция "--cache", обеспечивающая режим кэширования для ускорения доставки бинарных сборок большому числу пользователей;- Решена большая порция проблем с обеспечением повторяемых сборок пакетов.
URL: http://www.gnu.org/software/guix/news/gnu-guix-and-guixsd-0....
Новость: https://www.opennet.ru/opennews/art.shtml?num=46581
"Для определения сценариев сборки приложений и правил формирования пакетов предлагается использовать специализированный высокоуровневый предметно-ориентированный язык и компоненты Guile Scheme API, позволяющие выполнять все операции по управлению пакетами на функциональном языке программирования Scheme."
Я правильно понимаю что для оптимизации ПО под железо потребуется знание Scheme вместо USE флагов как например в Gentoo?
и то, и другое.
Я честно не пойму зачем оно когда есть apt, dpkg и dh-утилиты. Что может потребоватся такое чего сделать с вышеназванным набором утилит?
чего НЕ сделать*
> чего НЕ сделать*Вот тут: https://nixos.org/~eelco/pubs/phd-thesis.pdf
Про Guile, GNU, Столмана - сам.
Обзорно глянул - невероятно полезная ссылка. Очень интересну, буду читать. Спасибо!
> Я честно не пойму зачем оно когда есть apt, dpkg и dh-утилиты.
> Что может потребоватся такое чего сделать с вышеназванным набором утилит?несколько версий фокса, вайна сразу ? несколько версий иксов, месы и дров сразу ?
С lxc не будет ли надежнее или может все это под kvm? В чем здесь преимущество Guix?
Гикс обеспечивает транзакционное детерминированное и воспроизводимое построение (и перестроение/обновление конфигурации) всей системы и отдельных изолированных окружений из высокоуровневых описаний на Схеме. Модные костыли вроде всяких Папетов и Докеров больше не будут нужны, все красиво, цельно и унифицировано.
>> Например, пакет устанавливается как /nix/store/f42d69df5d8a0b526064a4e54a7c6f02-firefox-53.0.0/Красиво, говоришь? Типа наподобие C:\$SETUP$\f42d69...
> транзакционное детерминированное и воспроизводимое построениемне не все прозрачно в этих терминах, где можно почитать о терминах ?
> Модные костыли вроде всяких Папетов и Докеров больше не будут нужны, все красиво, цельно и унифицировано.
вот тут понятно вроде
>> транзакционное детерминированное и воспроизводимое построение
> мне не все прозрачно в этих терминах, где можно почитать о терминах
> ?Слайды полистай. https://www.gnu.org/software/guix/help/#talks
Или phd-thesis.pdf, если не хватит. Ссылка там пятью строками выше или здесь в #18.----
Слова-то длииииннные -- сразу видно кампьютер сайнс. Последние лет 50... Хотя, возможно, кто-то просто трепется. Не принимайте за чистую монету, составьте своё мнение.#>>(и перестроение/обновление конфигурации) всей системы и отдельных изолированных окружений из высокоуровневых описаний на Схеме. Модные костыли вроде всяких Папетов и Докеров больше не будут нужны, все красиво, цельно и унифицировано.
Хотя там дальше лес -- про систему, которого вы за деревьями длинных слов не увидели. Впрочем, и там тож высокопарного слога предостаточно.
Коллега хотел сказать, что ... guix (и папа его nix, видимо) покрывает диплой (осторожно! красивое слово) от построения среды сборки компонентов, обеспечения её, среды. повторяемость и сборку (композицию) из тех же компонентов, сорсово-и-или-бинарной установки, и до сборки системы в целом, окружения, как набора сервисов (диски-разделы, ядра-загрузчики, пользователи-ключи-пароли, запускаемые серыисы, интерфейсы, и, конечно, установенные пакеты по).
То есть guix -- он и pbuilder, и APT/YUM, и dpkg/rpm(не в том смысле,что он умеет .deb или .rpm---), и puppet/ансибль/ктотамуних (не такой модно-молодёжно навороченный, возможно, больше рукописные скрипты-шаблоны), и debian-installer (unattended в т.ч.).
Например, они системную конфигурацию (всего компа~ один .scm файл!) проверяют(если надо:) "накатом" виртуалки из неё, см. guix system vm https://www.gnu.org/software/guix/manual/html_node/Invoking-... . Или свои билд-фермы "хранят" в git-е http://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/h... .
Устанавливать разные версии одной и той же программы, или устанавливать пакеты всё в одном, типа, как самодостаточные.
Апт невероятно убог и тормознут.
> Апт невероятно убог и тормознут.Это ты ещё DNF не видел. Апт по сравнению с ним ещё ничего.
Не знаю в чем он убог, а тормозит при построении и перестроении списка пакетов что оправдано если учесть что специально часть никто не оптимизировал. У apt и aptitude есть некоторые преимущества которые критичны для меня и их нет в rpm.
> выполнение транзакционных обновленийэто пожалуй единственное, чего не хватает в apt/rpm(yum)
Аптом уже можно ставить несколько версий одного пакета?
Да, если пакет собран в /opt/pkg/version (или /usr/local/pkg/version).
См. как постгресники это делают.
* И rpm'ом аналогично.
> Да, если пакет собран в /opt/pkg/version (или /usr/local/pkg/version).Но все же понимают, что это _костыль_.
Нет, это грамматная сборка пакетов
более правильного слова для такой сборки и не подобрать
>В GuixSD обеспечена возможность запуска системных сервисов (фоновых процессов) в изолированных контейнерах, что позволяет защитить систему от возможных уязвимостей в данных сервисахмолодцы что в дефолтную систему вписали, ещё б гуишные добавить типо скайпа (аль фотошопа)
Ага, щаз тебе FSF добавит Skype, жди ;)
Это Proof ofConcept или юзабельно для личного использования?
В UEFI уже может?
>В UEFI уже может?-->
>В сборки GuixSD добавлена поддержка загрузки на системах с UEFI
>Добавлена поддержка архитектуры aarch64в то время, как большинство дистров уже выкинуло арм. Лол
>>Добавлена поддержка архитектуры aarch64
> в то время, как большинство дистров уже выкинуло арм. ЛолМногие дистрибутивы [u]ещё не подсели[/u] на 64битный арм. Ты из будущего что-ль?
Слишком красиво, не взлетит.
Пример Darcs никого ничему не научил.
А почему не GNU/Hurd?
GNU/Hurd Мертворожденное ядро которое не будет использовано никогда!
Пытался использовать Nix для запуска некоторых приложений, типа Calibre - гуя выглядит, мягко говоря, инородно. ШГ адское, темы кривые, диалоги открытия-сохранения всегда открываются по неожиданному пути. Вернулся на сборки standalone от разработчиков, лежащие в ~/opt, они в систему вписываются нормально.Не очень понимаю, чем геморрой с интеграцией в систему можно оправдать, что бы использовать Guix и Nix, вместое обычного ~/opt.
хмм да у меня там skypeforlinux затесался...
отсуствием гемороя.
если nix файл хорошо написан, ты получишь то, что хочешь очень лекго. например для своего проекта я собираю все библиотеки одним компилятором, собираю статический буст с fPIC и т.д. это все как бы одной строкой.
так и не понял чем эта штука отличается от оригинального nix. только тем что Scheme юзает, а не nix?
> так и не понял чем эта штука отличается от оригинального nix. только
> тем что Scheme юзает, а не nix?Пакеты на scheme пишут, а не на доморощенном nix lang. Говорят, с эскейпами вложенных шелл-сниппетов проще (=>всё переписано на scheme~), "полный lisp" мощнее доморощенного DSL с шелом в качестве низкоуровневого рантайма.
Nix-демона и guix использует, но свой форк. Так что не совсем "не nix". Фактически "там внизу" пакеты транслируются guix-ом в derivation-ы -- входные коды nix, описывающие сборку.
А ещё s,/nix/store/,/gnu/store/. И я совсем не уверен про совместное использование, как там наверху, в новости (пакеты NixOS => GuixSD?) -- .../store/ и демоны должны, вроде, быть отдельными и не пересекающимся, если я не вру. Хотя люди и ставят Guix [P.M., не ...SD] внутри NixOS (дистрибутива, базовой ОС), насколько там возможно разделение демона и стора, я не знаю. Может, guix-овые .drv-ешки собирают и ставят nis[OS]-овым демоном, не используя свой "родной" (и теряя бинарную совместимость с gnu субститьютами)?...
Вообще смысла особого в nixlang нет, ничего нового он не несет, такое ощущение что он появился во многом потому что у кое-кого в phd тезисе глав не хватало.
спасибо.на сколько я понял, если хеши они расчитывают одинаково (а это скорее всего так, если guix деревацию делает, ведь nix потом по этому хешь высчитает), то можно и совместно использовать.
у меня как-то не было проблемы написать shell, там две кавычки ставишь, такое нигде по коду не встретиться. а вот в скобках боюсь запутаться.
я не пробовал, но nix вроде можно настроить и без systemd (вроде встречал нужные деревации).
Описание пакетов в формате deb может понять любой юзер даже не программист, а вот написанные на всяких языках программирования лиспах только программер значит собирать, сопровождать пакеты смогут только они. Я к чему веду, к тому что для обычного пользователя guix намного хуже труднее для понимания. С этим вашим guix'ом уже не покопаешься в системе. популярность, прозрачность и демократичность linux резко понизится.
> Описание пакетов в формате deb может понять любой юзер даже не программист,
> а вот написанные на всяких языках программирования лиспах только программер значитВо-первых, вы передёргиваете, мусье шулер, с "понять" на "написание" и с "описание" (descrition: что ли?) на "на лисках". Во-вторых, "только программер" -- это с дипломом вуза, да? Хе... враньё. Себе-то хоть не врёте, или вами верите в написанное?
> собирать, сопровождать пакеты смогут только они. Я к чему веду, к
Отговорки. Вплоть до "п4ж и дезинформация."
> тому что для обычного пользователя guix намного хуже труднее для понимания.
> С этим вашим guix'ом уже не покопаешься в системе.Отлично. Вычёркиваю, можете не приходить. Надо _меньше_ пользователей.
>популярность, прозрачность и демократичность linux резко понизится.
Великолепно же! Микрософты, ораклы, редхаты и торвальдсы получат заслуженное? Скорее бы.
> так и не понял чем эта штука отличается от оригинального nix.А, да, пока не забыл: и проект GNU, в нём linux-libre, по скрижалям FSF --- GPLv3+, FSDG.
> так и не понял чем эта штука отличается от оригинального nix. только тем что Scheme юзает, а не nix?Помимо этого в GuixSD нет systemd:
>В качестве системы инициализации используется сервисный менеджер GNU Shepherd (бывший dmd), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme)
>В GuixSD обеспечена возможность запуска системных сервисов (фоновых процессов) в изолированных контейнерах, что позволяет защитить систему от возможных уязвимостей в данных сервисах;Вот это годно.
Ещё бы ядро с grsecurity в репу завезли.
>>В GuixSD обеспечена возможность запуска системных сервисов (фоновых процессов) в изолированных контейнерах, что позволяет защитить
> Вот это годно.
> Ещё бы ядро с grsecurity в репу завезли.Ээээ. Как вы себе это видите -- когда у одних linux-libre по скрижалям FSDG, а у других "прекращают открытую публикацию патчей"?
В Debian когда будет?
> В Debian когда будет?В официальном Debian-е, да??
Гм... От "когда-нибудь, может быть"
https://bugs.debian.org/850644
https://github.com/antono/guix-debian/tree/master/debian
https://github.com/detrout/debian-guix
https://lists.gnu.org/archive/html/guix-devel/2016-02/msg011...до "никогда":
"However, for good reasons (maybe too long to go into here?) Guix does not follow the Filesystem Heirarchy Standard, and for that reason alone will probably not be installed in the main repositories of Debian at least soon." --https://unix.stackexchange.com/questions/290423/can-guix-pac...
А чем в целом ставить и подготавливать пакеты?
А то что-то очень уж много возни с штатными средствами.
На сколько я помню даже rpm и тот проще делать чем deb.