source: at-w96k/content/guix.org@ 527ee10

Last change on this file since 527ee10 was 527ee10, checked in by Mikhail Kirillov <w96k@…>, on Apr 21, 2022 at 7:36:38 AM

Fix typo

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