LINUX.ORG.RU

Вышел GuixSD 0.11

 ,


1

3

3 августа 2016 года вышли Guix и GuixSD версии 0.11. Guix — функциональный менеджер пакетов гарантирующий отсутствие изменений в поведении одних пакетов при установке или обновлении других, гарантирующий атомарность установки и обновления пакетов, и дающий возможность установки и одновременной работы любого количества версии любых пакетов. Guix может работать с правами обычного пользователя в $HOME в других дистрибутивах GNU/Linux. GuixSD — ОС с Guix в качестве пакетного менеджера.

Среди изменений:

  • Новые системные сервисы в GuixSD, включая mcron, dropbear и dico
  • Добавлена инфраструктура для тестирования системы целиком
  • Добавлена поддержка сжатия в guix publish
  • Добавлен режим Emacs'а для просмотра расположения определений пакетов
  • Добавлена поддержка устройств RAID в GuixSD
  • 484 новых пакета, 678 обновлено. Отметим glibc-2.23, linux-libre-4.7. Исправлено несколько ошибок побитной воспроизводимости
  • Множество других улучшений инструментов и документации

GuixSD и Guix можно скачать в виде образа USB-накопителя или тарбола для установки в другой ОС семейства GNU/Linux.

Прошлая версия выходила 4 месяца назад. В разработке приняли участие 70 человек.

>>> Оригинал новости

★★★★★

Проверено: tailgunner ()
Последнее исправление: tailgunner (всего исправлений: 3)
Ответ на: guix от Camel

как guix устроен

почитал ради интереса, думал, хоть там смогу найти принципиальные отличия от nixos. как я понял, это этакий полностью свободный вариант последнего, который к тому же не пытается унифицировать конфигурацию программ. есть еще какие-нибудь отличия?

f1u77y ★★★★
()
Ответ на: комментарий от f1u77y

Как NixOS, только лучше

который к тому же не пытается унифицировать конфигурацию программ

Пытается, ровно таким же образом. Унификация конфигурации это сила, могучая сила.

есть еще какие-нибудь отличия?

Главное отличие и преимущество Guix'а на Nix'ом это Scheme вместо nixlang'а. Ну а ещё Shepherd вместо systemd, но это кому что нравится.

Camel ★★★★★
() автор топика
Ответ на: Как NixOS, только лучше от Camel

Пытается, ровно таким же образом

не нашел этого, буду знать

Scheme вместо nixlang’а

но это кому что нравится

а как там с пакетами? существующие обновляют своевременно? что их пока довольно мало, догадываюсь. и как там с несвободным софтом?

f1u77y ★★★★
()
Ответ на: комментарий от f1u77y

Нешвабодка

а как там с пакетами? существующие обновляют своевременно?

Обновляют нормально. Можно используя специальный костыль использовать пакеты из NixOS'а и других мест.

и как там с несвободным софтом?

Хреново. Но я надеюсь это исправить.

Camel ★★★★★
() автор топика
Ответ на: комментарий от f1u77y

В NixOS узкозаточенный DSL, в GuixSD схемка. Однако если будешь только потреблять и копипастить, то пофиг что выбирать.

anonymous
()
Ответ на: guix от Camel

Не нашел там ничего, что объясняло бы фигню с /usr/bin. Я думаю, всё будет работать (хотя и не так, как в обычном Linux).

tailgunner ★★★★★
()
Ответ на: Нешвабодка от Camel

костыль

довольно круто выглядит. может быть эти пакеты из nixos еще и нормально устанавливаются и переносят опции конфигурации из nixos?

Но я надеюсь это исправить

неофициальный репозиторий?

f1u77y ★★★★
()
Ответ на: комментарий от anonymous

пофиг что выбирать

пока что в guix проблема с наличием нужных пакетов(не знаю, как там работает импорт из nix, но мне не верится, что он работает хорошо), так что не пофиг

f1u77y ★★★★
()
Ответ на: комментарий от f1u77y

есть еще какие-нибудь отличия

Основные отличия - меньшая зрелость и меньшее комьюнити Guix'а. Ну, и меньшая зрелость комьюнити Guix'а, судя по их идеям перепилить всё ради шхемки и швабодки.

Esper
()
Ответ на: Как NixOS, только лучше от Camel

Унификация конфигурации это сила, могучая сила.

А как они вообще её унифицируют? Как выглядит конфигурация, например, vim'а в nixos'е? И не слишком ли это неподъёмная задача целиком её унифицировать?

Esper
()
Ответ на: комментарий от Esper

конфигурация, например, vim’а

вим и прочий софт с сложной конфигурацией они не пытаются унифицировать. а вот, к примеру, иксы или sysctl в nixos конфигурируются на nix

f1u77y ★★★★
()
Ответ на: комментарий от anonymous

Переименованный

был же dmd? или это он и есть, просто переименованный?

Был dmd. Это он и есть, просто переименованный.

Camel ★★★★★
() автор топика
Ответ на: комментарий от f1u77y

вим и прочий софт с сложной конфигурацией они не пытаются унифицировать.

А в чём тогда смысл унификации?

Esper
()
Ответ на: комментарий от f1u77y

Унифицировать

вим и прочий софт с сложной конфигурацией они не пытаются унифицировать

Вероятно ещё руки не дошли, тем более там, надо понимать, будет действительно много работы.

Camel ★★★★★
() автор топика
Ответ на: Унифицировать от Camel

ага, может еще потом напишут обертку для конфигурации имакса, но уже на scheme

как можно всерьез думать, что кто-то сможет написать кучу оберток для конфигурации разного софта с конфигами на языках программирования?

f1u77y ★★★★
()
Ответ на: комментарий от Esper

в том, чтобы состояние системы включало в себя не только установленные пакеты, но и ее конфигурацию, и чтобы по тому же /etc/nixos/configuration.nix можно было восстановить состояние состемы

f1u77y ★★★★
()
Ответ на: комментарий от f1u77y

чтобы по тому же /etc/nixos/configuration.nix можно было восстановить состояние состемы

Но конфигурация восстанавливается далеко не вся, так?

Esper
()
Ответ на: комментарий от Esper

ту конфигурацию, которая не поддерживается nixos, можно так же включать в состояние в виде файлов.

f1u77y ★★★★
()
Ответ на: комментарий от f1u77y

Сумасшествие

как можно всерьез думать, что кто-то сможет написать кучу оберток для конфигурации разного софта с конфигами на языках программирования?

Ну, примерно как я думаю. Хотя на самом деле я так не думаю.

Camel ★★★★★
() автор топика
Ответ на: комментарий от Esper

У них задача сделать восстанавливаемой системную конфигурацию, т.е. то что в /etc. Дотфайлы держи себе в гите. Унификация это просто хороший тон, в крайнем случае делают тупо встраивание чужеродного конфига, типа

networking.extraHosts =
''
192.168.0.1 lanlocalhost
192.168.2.1 somehost
...
'';

anonymous
()
Ответ на: комментарий от tailgunner

программу нельзя поставить просто разбросав файлы в /usr/bin и /usr/lib, не заработает

Почему? У них свой ld.so?

ls /bin
sh

ls /sbin
No such file or directory

ls /lib
No such file or directory

ls -R /usr
/usr:
bin

/usr/bin:
env

ls /lib/ld*
No such file or directory

Почему так, читаем параграф «NixOS and the FHS» http://sandervanderburg.blogspot.ru/2011/11/on-nix-nixos-and-filesystem-hiera...

Как в этом идеальном мирке запустить сторонний блоб?

anonymous
()
Ответ на: комментарий от tailgunner

Почему? У них свой ld.so?

1. там есть каноничный костыль под названием patchelf, чтобы обеспечить воспроизводимость билдов.

каноничным способом в nixos считается при сборке жёстко прописывать RPATH. patchelf — это попытка прописывать нужный ld.so прямо в бинарнике, сохраняя воспроизводимость билдов

а то вдруг сломается ABI и старая glibc не заработает с новым пакетом, — что, пересобирать полсистемы через revdep-rebuild как в генте например?

нет уж, проще (с их точки зрения) прописать нужный glibc, ld.so и т.п. сразу в бинарнике и канонiчно обеспечить воспроизводимость сборок, до последнего тулчейна.

там конфигами тоже забавным образом управляют — обеспечивая воспроизводимость и версионность.

функциональщина во все поля, же ну.

и объектно-ориентированное хранилище (content storage), почти как в git. даже сборка мусора тоже есть, и симлинки на конкретный артефакт, и костыль над симлинками.

программу нельзя поставить просто разбросав файлы в /usr/bin и /usr/lib, не заработает
почему?

2. потому что разбрасывать нужно всё nix-closure — замыкание в объектном хранилище. а потом по транзитивности замыкания, вытаскивать весь дом который построил джек, вплоть до glibc и тулчейна.

хотя потом над этим всё равно /usr/bin, /usr/lib маскирует симлинками в объектное хранилище.

плюсы ещё и в том, что по идее работает дедубликация хардлинками и в принципе должно работать обновление бинарных пакетов сборок из CI фермы (Hydra)  — дельтами, разницей от предыдущей сборки.

тыц

use-binary-caches

If set to true (the default), Nix will check the binary caches specified by binary-caches and related options to obtain binary substitutes. binary-caches

A list of URLs of binary caches, separated by whitespace. The default is https://cache.nixos.org. binary-caches-files

A list of names of files that will be read to obtain additional binary cache URLs. The default is /nix/var/nix/profiles/per-user/username/channels/binary-caches/*. Note that when you’re using the Nix daemon, username is always equal to root, so Nix will only use the binary caches provided by the channels installed by root. Do not set this option to read files created by untrusted users! trusted-binary-caches

A list of URLs of binary caches, separated by whitespace. These are not used by default, but can be enabled by users of the Nix daemon by specifying --option binary-caches urls on the command line. Unprivileged users are only allowed to pass a subset of the URLs listed in binary-caches and trusted-binary-caches. extra-binary-caches

Additional binary caches appended to those specified in binary-caches and binary-caches-files. When used by unprivileged users, untrusted binary caches (i.e. those not listed in trusted-binary-caches) are silently ignored. signed-binary-caches

If set to *, Nix will only download binaries if they are signed using one of the keys listed in binary-cache-public-keys. binary-cache-public-keys

если не юзать бинарные substitutes, то должен собирать с 0 из «почти ванильных» (какие-то патчи всё-таки есть, да и костыли с patchelf) сырцов. кучи USE-флагов как в генте тут нет, что также доставляет к воспроизводимости билдов.

anonymous
()
Ответ на: комментарий от tailgunner

хитрая философия насчёт необходимости patchelf описана по идее здесь, на 11 странице (и ещё подробнее в диссере с примерами на тему «The Purely Functional Software Deployment Model.», см. также хелловорд экзампле от disnix, nixops, вот это всё на тему «Declarative distributed systems modeling» и CI, devops)

:

Software packages Nix has no /bin, /usr, /lib, /opt or other “stateful” directories containing software packages, with a single exception: there is a symlink /bin/sh to an instance of the Bash shell in the Nix store. This symlink is created by the activation script. /bin/sh is needed because very many shell scripts and commands refer directly to it; indeed, the C library function system() has a hard-coded reference to /bin/sh. To our surprise, /bin/sh is the only such compromise that we need in NixOS. Other hard-coded paths in packages (e.g., references to /bin/rm or /usr/bin/perl) are much less common and can easily be patched on a per-package basis. Such paths are uncommon in widely used software because they are not portable in any case (e.g., Perl is typically, but not always installed in /usr/bin/perl). They are relatively more common in Linux-specific packages that we needed to add to Nixpkgs to build NixOS. An interesting class of packages to support are binary-only packages, such as Adobe Reader and many games. While Nix is primarily a source-based deployment system (with sharing of pre-built binaries as a transparent optimisation, as discussed in Section 3), binary packages can be supported easily: they just have a trivial build action that unpacks the binary distribution to $out. However, such binaries won’t work as-is under NixOS, because ELF binaries (which Linux uses) contain a hard-coded path to the dynamic linker used to load the binary (usually /lib/ld-linux.so.2 on the i386 platform), and expect to find dependencies in /lib and /usr/lib. None of these exist on NixOS for purity reasons. To support these programs, we developed a small utility, patchelf, that can change the dynamic linker and RPATH (runtime library search path) fields embedded in executables. Thus, the derivation that builds Adobe Reader uses patchelf to set the acroread program’s dynamic linker to /nix/store/...-glibc-.../lib/ld-linux.so.2 and its RPATH to the store paths of GTK and other

anonymous
()
Ответ на: Переименованный от Camel

Был dmd. Это он и есть, просто переименованный.

хорошо, а то c Digital Mars D комплиятором референсным явный конфликт имён.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.