LINUX.ORG.RU

Вышел GNU Guix 1.0.0

 ,


0

2

2 мая 2019 года, после 7 лет разработки, программисты из фонда свободного программного обеспечения (FSF) выпустили GNU Guix версии 1.0.0. За эти 7 лет было принято более 40 000 коммитов от 260 человек, выпущено 19 релизов.

GNU Guix является результатом совместных усилий программистов из разных стран. Он одобрен FSF и теперь доступен для широкой аудитории. В настоящее время установочный образ имеет графическую установку, в которой генерируется конфигурационный файл, исходя из предпочтений пользователя.

Guix — это пакетный менеджер и дистрибутив операционной системы, в котором используется этот пакетный менеджер. Операционная система инициализируется из файла описания ОС, который использует язык Scheme. В качестве системы инициализации используется собственная разработка — GNU Shepherd. Ядро — Linux-libre.

Идея транзакционного пакетного менеджера впервые реализована в Nix. Guix - это транзакционный пакетный менеджер, написанный на Guile. В Guix пакеты устанавливаются в профили пользователей, для установки не требуются привилегии root, возможно использование многих версий одного пакета, также доступны откаты до предыдущих версий. Guix — первый пакетный менеджер, в котором реализована идея воспроизводимых (повторяемых) сборок с использованием архива Software Heritage. Установка программного окружения любой доступной версии позволяет программистам удобно работать с предыдущими версиями пакетов. Guix предоставляет инструменты работы с контейнерами, виртуальными машинами. Он собирает пакеты из исходников, использует серверы подстановки собранных бинарников для ускорения процесса установки пакетов.

В настоящее время вариант установки desktop включает X11, GDM, Gnome, NetworkManager по умолчанию. Можно переключиться на Wayland, также доступны рабочие столы Mate, Xfce4, LXDE, Enlightenment, различные оконные менеджеры X11. В настоящее время KDE отсутствует (см. Limitations).

Дистрибутив на данный момент включает 9712 пакетов, которые соответствуют требованиям FSF к свободному программному обеспечению и распространяются под свободными лицензиями GPL. Доступны nginx, php7, postgresql, mariadb, icecat, ungoogled-chromium, libreoffice, tor, blender, openshot, audacity и другие. Готовится перевод руководства на русский язык.

>>> Подробности

★★

Проверено: jollheef ()

Идея пакетного менеджера Guix впервые реализована в Nix.

Тут по-другому надо сказать, а то читается, будто идея была Guix, но первыми ее воплотили в Nix. Но в реальности все наоборот. Идея, воплощенная в Nix — диссертация автора Nix.

Dolstra, E. The Purely Functional Software Deployment Model. PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006.

А Guix — это еще одно воплощение этих идей, но на Guile.

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

Причем начинался guix как другой «front-end» к nix store, и вроде бы по-прежнему использует кучу функций из никс-библиотек. Это можно бы и указать в новости. (Поправьте, если не так)

balsoft ()
Последнее исправление: balsoft (всего исправлений: 1)
Ответ на: комментарий от anonymous

shell (default: Bash)
This is a G-expression denoting the file name of a program to be used as the shell (see G-Expressions).
https://www.gnu.org/software/guix/manual/en/guix.html#User-Accounts

		  (users (cons* (user-account (name "bob") (group "users")
					      (supplementary-groups '("wheel" "netdev" "audio" "video"))
					      (home-directory "/home/bob"))
				(user-account (name "mom") (group "users")
					      (supplementary-groups '("wheel" "netdev" "audio" "video"))
					      (home-directory "/home/mom")
					      (shell "Bash"))
				%base-user-accounts))

так:

 (shell "Bash")
znavko ★★ ()
Последнее исправление: znavko (всего исправлений: 2)
Ответ на: комментарий от znavko

чтобы установить для всех профилей zsh, например, и использовать его в профиле вашего пользователя, добавьте его в (operating-system ...(packages )):

(operating-system
...
		  (packages (cons* nss-certs ;for HTTPS access
				   gvfs	     ;for user mounts
				   wpa-supplicant
				   zsh
				   %base-packages))

)
znavko ★★ ()
Последнее исправление: znavko (всего исправлений: 1)
Ответ на: комментарий от anonymous

изменить shell пользвоателю mom на dash

по примерам из гитхаба: 1, 2 — надо так (для dash, например):

(use-modules ...	    
             (gnu packages shells)
             )

(operating-system
...
		  (users (cons* (user-account (name "bob") (group "users")
					      (supplementary-groups '("wheel" "netdev" "audio" "video"))
					      (home-directory "/home/bob"))
				(user-account (name "mom") (group "users")
					      (supplementary-groups '("wheel" "netdev" "audio" "video"))
					      (home-directory "/home/mom")
					      (shell (file-append dash "/bin/dash")))
				%base-user-accounts))

...
                  )

обязательно использовать модуль (gnu packages shells).

другие оболочки тут: http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/shells.scm

znavko ★★ ()

В Guix пакеты устанавливаются в профили пользователей, для установки не требуются привилегии root, возможно использование многих версий одного пакета, также доступны откаты до предыдущих версий.

Костыль для затыкания недостатка стокового линукса, к тому же мега идиотский, так как разворачивается в рут директорию а компоненты распихиваются по системным директориям в которые дефолтный пакетный менеджер ставит свои пакеты. Просто фиеричное говнище.

Я не понимаю почему нельзя сделать простой пакетный менеджер уровня npm или pip только для системных приложений библиотек и хидеров, нужны изолированые пространства ну можно же посмотреть как это у нормальных людей сделано - хаскелевый cabal с hsenv например. Работает под лунуксами и обеспечивает то что линуксоиды не могут сделать в своей системе уже хрен знает сколько лет (Написано кстати что то про питоновый аналог, сразу видно люди не страдают nih синдромом).

Но у них то ненужно это вовсе, то выкатывают какое то архаичное говнище в котором вот уж точно смысла (в такой вот его реализации) вообще никакого нет. Что мешает в другие проекты подсмотреть что не дает чужой опыт использовать, где вот эта жаба сидит требующая своих «неимеющих аналогов» решений и «своего особого пути» интересно

uin ★★ ()
Последнее исправление: uin (всего исправлений: 1)
Ответ на: комментарий от znavko

тут академический подход именно с упором на приоритеты MIT.

2. воспроизводимые сборки

This is particularly a concern for developers collaborating on privacy or security software: attacking these typically result in compromising particularly politically-sensitive targets such as dissidents, journalists and whistleblowers, as well as anyone wishing to communicate securely under a repressive regime.

Лол, я подозревал что у людей какие то проблемы с юзабилити и прочим, но не подозревал что у них напрочь пробитая кукуха.

uin ★★ ()

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

А по ссылке установщик очень даже консольный.

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

KDE создавался изначально на проприетарном Qt, им все равно на свободность, это виндузоидное поделие, закроют Qt - они даже не и пальцем не пошевельнут, будут кушать что дают. Программы используют странные интернет-сервисы, и всякие запатентованные технологии.

VarfolomeyKote4ka ()

Да, пакетов маловато. Нет, это не проблема, если ты пишешь на лиспе. Если же нет, то непонятно, зачем тебе вообще этот дистр.

anonymous ()
Ответ на: изменить shell пользвоателю mom на dash от znavko

вот так будет правильней:

(shell #~(string-append #$zsh "/bin/zsh"))
и убедитесь что в .zprofile есть строчка
source /etc/profile
из-за этого gdm меня назад выплёвывал.

vasyan ()
Последнее исправление: vasyan (всего исправлений: 1)

по поводу количества пакетов то не всё так однозначно.

guix package --list-available|wc -l                                                                                        
9707
guix package --list-available|grep -vE '^(python2*-|emacs-|ocaml-|r-|ruby-|sbcl-|ecl-|cl-|texlive-|perl-|ocaml-|java-|go-|ghc-)'|wc -l
4032

vasyan ()

В конфиге, сгенерированном графическим установщиком, почему-то не используется %base-packages при объявлении системных пакетов. Так я первый раз увидел ls: command not found %)

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

Да, никогда не понимал резона иметь, например, python пакеты с либами, когда есть pip (Аналогично с другими языками). Мейнтейнеры - что те коты

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

сгенерированном графическим установщиком

Оу! Чот я пропустил. Когда он появился? Это ж теперь каждый убунтоид, который Лиспа не видел ни разу сможет установить?

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

Там тоже не всё гладко. Любая попытка сконфигурять сервер приводит к осознанию, что конфиги там — произведения Франкенштейна. Лучше бы просто оставили в покое DSL конфигов различных сервисов и юзали их as is, лучше всего со специальной директивой для их инклудов с указанием диалекта.

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

Я не понимаю почему нельзя сделать простой пакетный менеджер уровня npm

Ну если ты 1) считаешь, что «npm - хорошо» и 2) считаешь, что «я не понимаю» это значит - все дураки, а ты умный, а не наоборот, то возвращайся через несколько лет, авось поумнеешь. В линуксе всегда так было, что каждый мамки джаваскрипт сеньор архитектор старается поучать бородатых дядек.

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

Ты мыслишь не в том направлении. Идея Nix не в том, чтобы изобрести ещё один менеджер пакетами или управлялку конфигурациями. Nix создан, чтобы заменить собой всё. Потому что полумеры здесь не работают. Сначала Nix взял на себя управление пакетами. Потом он взял на себя управление конфигами и системными службами вместо puppet/salt/chef/ansible/... бардака, который не работает. Потом он возьмёт на себя сборку софта из исходников взамен make/automake/cmake/qmake/meson/ninjа/... зоопарка. Потом, со временем, вся операционная система будет построена на принципах иммутабильности, воспроизводимости, контентной адресации. Это не Nix должен подстраиваться под нынешний бардак из легаси костылей. Это легаси-бардак должен эволюционировать в направлении Nix.

anonymous ()