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 ()
Последнее исправление: Deleted (всего исправлений: 6)

Идея пакетного менеджера 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)

Поставил.

Как сменить дефолтный шелл?

Есть ли метапакеты? coreutils пришлось руками ставить.

anonymous
()
Ответ на: комментарий от 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)
Ответ на: комментарий от uin

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

0. свобода пользователя при работе за компьютером

1. язык guile из семейства lisp

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

спасибо за ваши предложения.

znavko ★★
() автор топика
Ответ на: комментарий от 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 ★★★★★
()

По описанию - интересно.

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

А зачем нужна эта проприетарная поделка? Gnome3 на головы выше, ну а красноглазые WM тоже имеются.

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

опа, кто-то в периоде разгара жиробы

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

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

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

Я как бы не говорю что KDE нужно выбросить срочно отовсюду, просто GNU Guix за свободу!!!

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

KDE создавался изначально на проприетарном Qt

Xfce4 кстати тоже, но вскоре было решено переписать DE, так как появился нормальный тулкит - Gtk+.

Deleted
()

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

anonymous
()

Кстати Shepherd вполне годен, старт системы (на SSD) за пару секунд. Так-то!))

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
()
Ответ на: комментарий от anonymous

Напротив, nix/guix должны рано или поздно заменить собою все эти pip/gem/npm/cargo/чтотамещё - реликты pre-Nix эпохи.

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

Что бы ничего не ломалось, можно было следить за безопасностью, обновляться с помощью одного apt upgrade, итд.

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

Че, ни разу не нужен был wheel с нативной зависимостью?

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

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

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

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

Оу! Чот я пропустил.

На самом деле псевдо.

Nervous ★★★★★
()

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

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

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

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

И так может, только теперь сможет ещё и не плюясь от этого скобочного безобразия.

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

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

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

Alve ★★★★★
()

tcl есть - это хорошо..

а вот tk нетути..поэтому tkinter, maxima, scilab тоже там-же:(

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

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

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