Содержание

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.

Определения пакетов описываются на диалекте языка SchemeGNU/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 Cookbook

  • Одноразовое исправление демона 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

No rights reserved

2024-10-30 Wed 19:20