source: content/guix.org@ 04b56e4

Last change on this file since 04b56e4 was c721284, checked in by Mikhail Kirillov <w96k@…>, on Aug 29, 2022 at 1:34:37 AM

Summary: Dont load music

  • Property mode set to 100644
File size: 11.8 KB
Line 
1#+TITLE: @w96k: GNU Guix
2#+LANGUAGE: ru
3
4* GNU Guix
5#+BEGIN_abstract
6For now the text is available only in Russian language. It describes
7what is gnu guix, how to use it and how to bypass ip bans for russian/belarussian
8ips
9#+END_abstract
10
11** Что такое GNU Guix
12*GNU GUIX* (произносится гикс /ɡiːks/) — функциональный пакетный
13менеджер и операционная система, разработанные [[https://people.bordeaux.inria.fr/lcourtes/][Ludovic Courtès]] и
14сообществом. Отличительной особенностью является создание полностью
15[[/posts/reproducible-builds.html][воспроизводимых билдов]] и декларативное описание. Guix можно поставить
16на существующий дистрибутив GNU/Linux или в качестве отдельной системы
17на базе Linux или GNU Hurd. Раньше существовало разделение менеджера
18пакетов Guix и операционной системы GuixSD.
19
20Определения пакетов описываются на диалекте языка [[https://en.wikipedia.org/wiki/Scheme_(programming_language)][Scheme]] –
21[[https://gnu.org/software/guile/][GNU/Guile]]. Большая часть исходников написана на нём же. Система
22изначально была основана на [[https://nixos.org/][Nix]]. Отличиями от Nix(OS) являются
23язык для описания пакетов и сервисов, система инициализации (GNU
24Shepherd), использование ядра [[https://www.fsfla.org/ikiwiki/selibre/linux-libre/][Linux-Libre]] (Linux без блобов) и
25отсутствие проприетарных пакетов.
26
27О том чем опасны проприетарные пакеты можно ознакомиться на сайте
28проекта [[https://www.gnu.org/philosophy/free-sw.html][GNU]] или посмотреть [[https://www.fsf.org/blogs/rms/20140407-geneva-tedx-talk-free-software-free-society][выступление Ричарда Столлмана]]. Не смотря на
29отсутствие проприетарных пакетов, при должном старании их возможно
30поставить при помощи сторонних каналов, но их поддержка оставляет
31желать лучшего по сравнению со свободными пакетами, доступными в Guix.
32
33GNU Guix (из коробки) не имеет проприетарного firmware. Потому при
34переходе на эту систему надо учитывать, что возможно wifi адаптер, gpu
35и другие компоненты системы могут не работать частично или
36полностью. Совместимость оборудования со свободным программным
37обеспечением можно смотреть на сайте [[https://h-node.org/][H-node]].
38
39Архитектуры пакетного менеджера: ~i686~, ~x86_64~, ~ARMv7~, ~AArch64~
40Архитектуры системы: ~i686~, ~x86_64~ (~arm~ и ~riscv~ в разработке)
41
42Система инициализации Guix: [[https://www.gnu.org/software/shepherd/][GNU Shepherd]]
43
44*** Обзорные видео
45youtube:eWXoKjWCh60
46youtube:iBaqOK75cho
47
48Также есть [[https://guix.gnu.org/en/videos/][серия небольших видео на сайте проекта]].
49
50*** Полезные Ссылки
51- [[https://habr.com/ru/post/436938/][Обзорная статья о возможностях GNU Guix]]
52- [[https://gist.github.com/sirikid/2817f36d67d1480a428cbf33b220cfcc][Список свободных wifi адаптеров]]
53
54- [[https://guix.gnu.org/][Сайт проекта]]
55- [[https://guix.gnu.org/en/manual/devel/en/html_node/][Документация]] (~info guix~)
56- [[https://guix.gnu.org/en/cookbook/en/guix-cookbook.html][Cookbook]] (~info guix-cookbook~)
57- [[https://git.savannah.gnu.org/cgit/guix.git/][Исходный код]]
58- [[https://guix.gnu.org/guix-refcard.pdf][Шпаргалка]]
59- [[https://guix.gnu.org/en/videos/][Видео-туториалы]]
60- [[https://hpc.guix.info/browse][Веб-интерфейс поиска пакетов]]
61- [[https://issues.guix.gnu.org][Баг-трекер]]
62- [[https://emacs-guix.gitlab.io/website/manual/latest/emacs-guix.html][Emacs интерфейс Guix]]
63- [[https://translate.fedoraproject.org/projects/guix/guix/ru/][Перевод Guix на русский язык]]
64** Каналы
65Guix позволяет установить недостающие пакеты, если подключить канал с
66нужными определениями пакетов. [[https://guix.gnu.org/manual/en/html_node/Channels.html][Guix Channels в документации]].
67
68*** Публичные каналы
69- https://gitlab.com/nonguix/nonguix
70- https://gitlab.com/mbakke/guix-chromium
71- https://gitlab.com/guix-gaming-channels
72** Конфигурации пользователей
73- [[https://github.com/guix-ru/configs][Репозиторий с конфигурациями русскоязычных пользователей]]
74- [[https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system/examples][Примеры из кода проекта]]
75** Доклады
76- [[https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/talks][Репозиторий докладов Guix]]
77- [[https://video.host.w96k.dev/w/p/wdGQRSWLg9ZePrGajFRuiN][Guix Days 2020]]
78- [[https://video.host.w96k.dev/w/p/9WHxpCmwetqL6tsMkc4Tg1][Guix Days 2022]]
79
80Также выступления есть на прошедших [[https://fosdem.org/archives/][FOSDEM]].
81
82** Ответы на вопросы
83*** Как завести систему с несвободным железом (не рекомендуется)
84- [[https://gitlab.com/nonguix/nonguix][Канал с несвободными пакетами NonGuix]]
85- [[https://github.com/SystemCrafters/guix-installer][Установочный образ с несвободным ядром и firmware]]
86
87*** Как обойти блокировки guix.gnu.org
88~ci.guix.gnu.org~ недоступен у некоторых пользователей в РФ
89Сервера Guix хостятся на территории Германии у провайдера, который
90недавно заблокировал российские ip-адреса.
91
92Из-за этого не работают ~guix install~, ~guix pull~ и т.д.
93
94[[https://lists.gnu.org/archive/html/help-guix/2022-03/msg00019.html][Подробнее о проблеме]]
95
96***** Исправление установочного образа
97Можно создать свой установочный образ с нужными зеркалами для демона
98guix. Если вы не можете собрать его сами, то можете воспользоваться
99образом, который я собрал (коммит
100~cabda1197e7925f58a8532534afc1bde6c5eb377~, ветка ~master~):
101[[https://nextcloud.host.w96k.dev/s/XayzT5BiiC3S2QT/download/guix-1.3.0-bypass-ru-ip-ban-image.iso][Установочный образ с зеркалами]]
102
103Чтобы сделать установочный образ с фиксом бана сабститьютов
104ci.guix.gnu.org, надо склонировать [[https://git.savannah.gnu.org/cgit/guix.git/][репозиторий Guix]], найти файл
105~gnu/system/install.scm`, найти переменную ~%installation-services~ и
106добавить туда сервисы:
107
108#+begin_src scheme
109 (service tor-service-type
110 (tor-configuration
111 (config-file (plain-file "tor-config"
112 "HTTPTunnelPort
113 127.0.0.1:9250"))))
114
115 (service guix-service-type
116 (guix-configuration (authorize-key? #t)
117 (substitute-urls
118 (append (list "https://4zwzi66wwdaalbhgnix55ea3ab4pvvw66ll2ow53kjub6se4q2bclcyd.onion"
119 "https://bordeaux.guix.gnu.org"
120 "http://ci.guix.trop.in")
121 %default-substitute-urls))))
122#+end_src
123
124Далее выполнить ~guix system image -t iso9660 gnu/system/install.scm~,
125после чего должен появится образ .iso в /gnu/store, который можно
126ставить на установочный носитель через dd~.
127
128***** Исправление локальной конфигурации системы
129Доступно зеркало ~bordeaux.guix.gnu.org~
130
131Поменяйте/добавьте bordeaux.guix.gnu.org в ~/.config/guix/channels.scm
132или системной конфиге сервис guix-service-type. Также должно помочь
133простое удаление из channels.scm функции
134channel-with-substitutes-available, если такая функция у вас
135используется.
136
137[[https://guix.gnu.org/manual/en/html_node/Getting-Substitutes-from-Other-Servers.html][Документация Guix: как менять substitutes url в системной конфиге]]
138
139Как настроить substitutes под tor:
140#+begin_src scheme
141 (use-modules (gnu))
142 (use-service-module base networking)
143
144 (operating-system
145
146 (services
147 (cons
148 (service tor-service-type
149 (tor-configuration
150 (config-file (plain-file "tor-config"
151 "HTTPTunnelPort
152 127.0.0.1:9250"))))
153 (modify-services %base-services
154 (guix-service-type
155 config => (guix-configuration
156 (inherit config)
157 ;; ci.guix.gnu.org's Onion service
158 (substitute-urls
159 "https://bp7o7ckwlewr4slm.onion")
160 (http-proxy "http://localhost:9250")))))))
161#+end_src
162
163[[https://guix.gnu.org/en/cookbook/en/guix-cookbook.html#Getting-substitutes-from-Tor][Подробнее в Guix Cookbook]]
164
165***** Одноразовое исправление демона guix
166Без сохранения изменений.
167
168Добавлять к командам guix флаг
169
170~--subtitutes-urls="https://bordeaux.guix.gnu.org"~
171
172Или для Tor:
173
174~sudo herd set-http-proxy guix-daemon http://localhost:9250~
175
176~guix build --substitute-urls=https://bp7o7ckwlewr4slm.onion ...~
177*** Где искать помощь
178Посмотреть архив списков рассылки:
179https://lists.gnu.org/archive/html/help-guix/
180Если там нет, то можно самому задать вопрос, отправив письмо на
181help-guix@gnu.org.
182*** Как создать пакет
183https://guix.gnu.org/blog/2018/a-packaging-tutorial-for-guix/
184
185*** Как "закрепить" версии пакетов:
186https://guix.gnu.org/manual/en/html_node/Inferiors.html
187
188*** Как выводить логи:
189Флаг ~-v~ или ~--verbosity~ со значением от ~0~ до ~2~ для пользователя.
190Например ~guix build hello -v 2~
191** Зеркала и прокси
192**** Прокси trop.in
193Andrew Tropin пишет:
194#+begin_src text
195 Поднял зеркала ci, issues и самого сайта. Сёрвятся только по http,
196 но доступны как и в инете, так в yggdrasil.
197
198 Достаточно https поменять на http, gnu.org на trop.in или
199 ygg.trop.in, например:
200
201 https://issues.guix.gnu.org/52388 -> http://issues.guix.trop.in/52388
202
203 Зеркало CI можно использовать как сабститьют сервер.
204
205 Остальная инфа на https://trop.in, если что-то не работает - пишите.
206#+end_src
207
208**** TODO Зеркало от w96k
209[[https://fosstodon.org/@w96k/108053233765822857][Подробнее]]
210
211
Note: See TracBrowser for help on using the repository browser.