GNU Guix
For now the text is available only in Russian language. It describes what is gnu guix, how to use it and how to bypass ip bans for russian/belarussian ips
Что такое GNU Guix
GNU GUIX (произносится гикс ɡiːks) — функциональный пакетный менеджер и операционная система, разработанные Ludovic Courtès и сообществом. Отличительной особенностью является создание полностью воспроизводимых билдов и декларативное описание. Guix можно поставить на существующий дистрибутив GNU/Linux или в качестве отдельной системы на базе Linux или GNU Hurd. Раньше существовало разделение менеджера пакетов Guix и операционной системы GuixSD.
Определения пакетов описываются на диалекте языка Scheme – GNU/Guile. Большая часть исходников написана на нём же. Система изначально была основана на Nix. Отличиями от Nix(OS) являются язык для описания пакетов и сервисов, система инициализации (GNU Shepherd), использование ядра Linux-Libre (Linux без блобов) и отсутствие проприетарных пакетов.
О том чем опасны проприетарные пакеты можно ознакомиться на сайте проекта GNU или посмотреть выступление Ричарда Столлмана. Не смотря на отсутствие проприетарных пакетов, при должном старании их возможно поставить при помощи сторонних каналов, но их поддержка оставляет желать лучшего по сравнению со свободными пакетами, доступными в Guix.
GNU Guix (из коробки) не имеет проприетарного firmware. Потому при переходе на эту систему надо учитывать, что возможно wifi адаптер, gpu и другие компоненты системы могут не работать частично или полностью. Совместимость оборудования со свободным программным обеспечением можно смотреть на сайте H-node.
Архитектуры пакетного менеджера: i686
, x86_64
, ARMv7
, AArch64
Архитектуры системы: i686
, x86_64
(arm
и riscv
в разработке)
Система инициализации Guix: GNU Shepherd
Обзорные видео
Также есть серия небольших видео на сайте проекта.
Полезные Ссылки
Каналы
Guix позволяет установить недостающие пакеты, если подключить канал с нужными определениями пакетов. Guix Channels в документации.
Конфигурации пользователей
Доклады
Также выступления есть на прошедших FOSDEM.
Ответы на вопросы
Как завести систему с несвободным железом (не рекомендуется)
Как обойти блокировки guix.gnu.org
ci.guix.gnu.org
недоступен у некоторых пользователей в РФ
Сервера Guix хостятся на территории Германии у провайдера, который
недавно заблокировал российские ip-адреса.
Из-за этого не работают guix install
, guix pull
и т.д.
- Исправление установочного образа
Можно создать свой установочный образ с нужными зеркалами для демона guix. Если вы не можете собрать его сами, то можете воспользоваться образом, который я собрал (коммит
cabda1197e7925f58a8532534afc1bde6c5eb377
, веткаmaster
): Установочный образ с зеркаламиЧтобы сделать установочный образ с фиксом бана сабститьютов ci.guix.gnu.org, надо склонировать репозиторий Guix, найти файл
gnu/system/install.scm`, найти переменную ~%installation-services
и добавить туда сервисы:(service tor-service-type (tor-configuration (config-file (plain-file "tor-config" "HTTPTunnelPort 127.0.0.1:9250")))) (service guix-service-type (guix-configuration (authorize-key? #t) (substitute-urls (append (list "https://4zwzi66wwdaalbhgnix55ea3ab4pvvw66ll2ow53kjub6se4q2bclcyd.onion" "https://bordeaux.guix.gnu.org" "http://ci.guix.trop.in") %default-substitute-urls))))
Далее выполнить
guix system image -t iso9660 gnu/system/install.scm
, после чего должен появится образ .iso в /gnu/store, который можно ставить на установочный носитель через dd~. - Исправление локальной конфигурации системы
Доступно зеркало
bordeaux.guix.gnu.org
Поменяйте/добавьте bordeaux.guix.gnu.org в ~/.config/guix/channels.scm или системной конфиге сервис guix-service-type. Также должно помочь простое удаление из channels.scm функции channel-with-substitutes-available, если такая функция у вас используется.
Документация Guix: как менять substitutes url в системной конфиге
Как настроить substitutes под tor:
(use-modules (gnu)) (use-service-module base networking) (operating-system … (services (cons (service tor-service-type (tor-configuration (config-file (plain-file "tor-config" "HTTPTunnelPort 127.0.0.1:9250")))) (modify-services %base-services (guix-service-type config => (guix-configuration (inherit config) ;; ci.guix.gnu.org's Onion service (substitute-urls "https://bp7o7ckwlewr4slm.onion") (http-proxy "http://localhost:9250")))))))
- Одноразовое исправление демона guix
Без сохранения изменений.
Добавлять к командам guix флаг
--subtitutes-urls="https://bordeaux.guix.gnu.org"
Или для Tor:
sudo herd set-http-proxy guix-daemon http://localhost:9250
guix build --substitute-urls=https://bp7o7ckwlewr4slm.onion ...
Где искать помощь
Посмотреть архив списков рассылки: https://lists.gnu.org/archive/html/help-guix/ Если там нет, то можно самому задать вопрос, отправив письмо на help-guix@gnu.org.
Как создать пакет
Как "закрепить" версии пакетов:
Как выводить логи:
Флаг -v
или --verbosity
со значением от 0
до 2
для пользователя.
Например guix build hello -v 2
Зеркала и прокси
- Прокси trop.in
Andrew Tropin пишет:
Поднял зеркала ci, issues и самого сайта. Сёрвятся только по http, но доступны как и в инете, так в yggdrasil. Достаточно https поменять на http, gnu.org на trop.in или ygg.trop.in, например: https://issues.guix.gnu.org/52388 -> http://issues.guix.trop.in/52388 Зеркало CI можно использовать как сабститьют сервер. Остальная инфа на https://trop.in, если что-то не работает - пишите.
- TODO Зеркало от w96k