cookutils view doc/cookutils.ru.html @ rev 1150

Show recent broken packages first
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Feb 19 15:32:45 2022 +0000 (2022-02-19)
parents 24dbe04170be
children
line source
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="ru">
3 <head>
4 <meta charset="utf-8" />
5 <title>Документация CookUtils</title>
6 <link rel="stylesheet" type="text/css" href="../slitaz-doc.css" />
7 <script type="text/javascript" src="../slitaz-doc.js"></script>
8 </head>
9 <body>
11 <header>
12 <h1>Документация CookUtils</h1>
13 </header>
15 <!-- Start content -->
16 <div id="content">
18 <h2>Cook и Cooker в SliTaz</h2>
20 <p>Пакет CookUtils в SliTaz содержит утилиты, которые помогут вам собрать пакеты
21 SliTaz. Они просты в использовании и изучении, быстрые и легковесные. Вы сможете
22 создавать пакеты SliTaz при помощи всего нескольких команд. В состав CookUtils
23 входят утилита cook («повар») и <a href="#cooker">Cooker</a> («плита»).</p>
25 <p>Cook компилирует исходный код и создает пакет, ведет журнал и проверяет
26 качество рецепта и пакета. Cooker — это сборочный бот, обладающий большей
27 автоматизацией, он может использоваться в качестве интерфейса для cook,
28 поскольку он имеет CGI/веб-интерфейс, позволяющий просматривать журналы cook в
29 приятном цветном виде. Cook и Cooker используют одни и те же файлы баз данных и
30 wok, они оба используют списки <a href="#blocked">заблокированных</a> и
31 испорченных пакетов и т.п.</p>
33 <p>Для получения технической информации (стиль кодирования и т.д.), обратитесь к
34 README, находящемуся в исходниках, либо в папке /usr/share/doc/cookutils.</p>
37 <h3>Использование cook</h3>
39 <p>Cook содержит небольшую встроенную справку по использованию, которую можно
40 отобразить командой <b>usage</b>. Также он имеет несколько параметров для
41 выполнения специальных задач над пакетами, как перед приготовлением, так и после
42 него. Итак, чтобы получить справку по использованию:</p>
44 <pre># cook <b>usage</b></pre>
47 <h3>Краткая инструкция</h3>
49 <p>Первое, что вам нужно сделать, прежде чем начнете собирать пакеты — настроить
50 окружение. Есть два рекомендованых способа работы: собирать непосредственно на
51 хосте или собирать в изолированном chroot-окружении (для защиты хоста). Если вы
52 хотите работать в изолированном окружении, вы можете установить и использовать
53 Tazdev для создания окружения и переключения на него:</p>
55 <pre># tazdev gen-chroot &amp;&amp; tazdev chroot</pre>
57 <p>По умолчанию Tazdev создает изолированное окружение в
58 /home/slitaz/cooking/chroot, но вы можете указать другой путь в параметре:</p>
60 <pre>
61 # tazdev gen-chroot <i>/home/slitaz/4.0/chroot</i>
62 # tazdev chroot <i>/home/slitaz/4.0/chroot</i>
63 </pre>
65 <p>Расположение изолированного окружения не важно, ведь когда вы будете
66 находиться в нём, вы будете использовать стандартные пути SliTaz, такие как
67 /home/slitaz/wok для папки wok и /home/slitaz/log для всех журналов cook. Как
68 обычно, вы можете вывести справку об использовании tazdev при помощи команды:</p>
70 <pre># tazdev usage</pre>
72 <p>При использовании изолированного окружения есть две специальные папки,
73 смонтированные с параметром bind: src и packages. Исходники всех пакетов
74 по умолчанию сохраняются в /home/slitaz/src; эта папка монтируется в chroot для
75 того, чтобы утилиты могли ее использовать. Этот метод позволяет обмениваться
76 исходниками между несколькими изолированными окружениями, например, одно
77 стабильное, а другое нестабильное. Папка с готовыми пакетами по умолчанию
78 находится в /home/slitaz/<em>версия</em>/packages, вне изолированного окружения;
79 пакеты здесь находятся в безопасности в случае удаления chroot по ошибке.</p>
82 <h3>Приступая к работе</h3>
84 <p>Итак, вы решили, как вы хотите работать, теперь давайте настроим окружение
85 cook. Cook использует конфигурационный файл cook.conf, если вы хотите
86 использовать собственные пути для папок и файлов SliTaz, вам придется изменить
87 его. Установка создаст некоторые папки и файлы для отслеживания работы и ошибок,
88 все файлы являются простыми текстовыми файлами, которые можно открыть в любом
89 текстовом редакторе. Чтобы подготовить окружение:</p>
91 <pre># cook setup</pre>
93 <p>Команда setup может иметь параметр --wok, который позволяет получить копию
94 wok SliTaz при настройке окружения cook. Даже если вы еще не являетесь
95 официальным разработчиком, вы можете получить копию wok и использовать
96 существующие пакеты в качестве примера для создания собственных. Для настройки
97 и клонирования wok по умолчанию (версии cooking) или версии undigest:</p>
99 <pre>
100 # cook setup --wok
101 # cook setup --undigest
102 </pre>
105 <h3>Проверка окружения</h3>
107 <p>Cook понимает команду test, по которой он создаст пакет и приготовит его.
108 Это позволяет определить, работает ли окружение и является примером пакета
109 с рецептом. Созданный фиктивный пакет называется «cooktest», его можно удалить
110 после тестирования. Для приготовления тестового пакета:</p>
112 <pre># cook test</pre>
115 <h3>Создание и приготовление</h3>
117 <p>Если ваша среда настроена правильно, вы можете приступить к созданию
118 и компиляции пакетов SliTaz из вашего wok. Чтобы создать новый пакет с пустым
119 рецептом (вы также можете создавать рецепты в интерактивном режиме):</p>
121 <pre>
122 # cook new имя-пакета
123 # cook new имя-пакета --interactive
124 </pre>
126 <p>Вы только что создали новый пакет, теперь вам нужно отредактировать рецепт
127 в вашем любимом текстовом редакторе. Когда рецепт будет готов, вы можете
128 приготовить его:</p>
130 <pre># cook имя-пакета</pre>
132 <p>Если все прошло успешно, то вы найдете свой пакет в папке $SLITAZ/packages,
133 а все созданные файлы — в $SLITAZ/wok/имя-пакета.</p>
136 <h3>Приготовление с установкой</h3>
138 <p>Если вы хотите приготовить и установить пакет одной командой:</p>
140 <pre># cook имя-пакета --install</pre>
143 <h3>Получение исходников</h3>
145 <p>Если вам нужно загрузить только исходники пакета, не создавая его, вы можете
146 использовать опцию --getsrc как показано ниже:</p>
148 <pre># cook имя-пакета --getsrc</pre>
151 <h3>Очистка пакетов</h3>
153 <p>После компиляции и упаковки в wok по-прежнему остаются файлы, которые
154 занимают место на диске. Для очистки выбранного пакета:</p>
156 <pre># cook имя-пакета --clean</pre>
158 <p>Вы также можете очистить сразу целый wok. Если решите сохранить связанные
159 с SliTaz файлы, вы можете удалить только исходники:</p>
161 <pre>
162 # cook clean-wok
163 # cook clean-src
164 </pre>
167 <h3>Поиск</h3>
169 <p>Cook поддерживает простую функцию поиска пакета в wok. Поиск использует grep
170 и поддерживает регулярные выражения:</p>
172 <pre># cook search busybox</pre>
175 <h3>База данных пакетов</h3>
177 <p>Cook может создать список пакетов в wok, а также создать соответствующий
178 список пакетов для TazPkg. Это позволяет легко создавать локальный репозиторий
179 пакетов, а также используется для создания официального списка пакетов SliTaz,
180 находящихся на зеркалах. Для просмотра текущего wok (вам не нужно быть
181 суперпользователем):</p>
183 <pre>$ cook list-wok</pre>
185 <p>При создании базы данных пакетов Cook проверит наличие редакций (flavors) в
186 /home/slitaz/flavors и при их наличии укомплектует все редакции новейшими
187 пакетами из списка доступных. Чтобы создать список пакетов и файлы редакций
188 Live:</p>
190 <pre># cook pkgdb</pre>
193 <h3 id="cooker">Cooker</h3>
195 <p>Cooker является сборочным ботом, он предназначен в первую очередь для
196 проверки изменений в wok, создания упорядоченного списка приготовления, и
197 приготовления изменившихся пакетов. Он также может быть использован в качестве
198 интерфейса для cook, так как они оба используют одинаковые файлы. Cooker может
199 быть также использован для приготовления большого списка пакетов за один прием,
200 такого, как, например, все пакеты редакции (flavor). Cooker имеет хороший
201 CGI/веб-интерфейс, который работает по умолчанию на любой системе SliTaz,
202 поскольку она обеспечивает поддержку CGI с помощью веб-сервера HTTPD BusyBox.</p>
204 <p>Cooker содержит небольшую встроенную справку об использовании и о коротких
205 командах. Например, чтобы отобразить информацию об использовании:</p>
207 <pre>
208 # cooker usage
209 # cooker -u
210 </pre>
213 <h3>Настройка Cooker</h3>
215 <p>Так же как и Cook, Cooker нуждается в рабочей среде, прежде чем начать его
216 использовать. Основное отличие от среды Cook в том, что Cooker требует два wok.
217 Один чистый wok с Hg, в качестве справочного, а другой — ваш экспериментальный
218 сборочный wok. В таком случае можно будет легко сравнить между собой оба wok
219 и определить изменения. Если у вас уже есть окружение Cook, вам необходимо
220 переместить ваш wok до настройки Cooker, или он будет жаловаться. Программа
221 установки также установит набор пакетов для разработки, которые могут быть
222 настроены в конфигурационном файле cook.conf и переменной SETUP_PKGS.
223 Для настройки окружения Cooker:</p>
225 <pre># cooker setup</pre>
227 <p>Если всё прошло хорошо, то теперь у вас есть 2 wok, установлены базовые
228 пакеты разработки и созданы все необходимые файлы. Поведение по умолчанию
229 заключается в проверке коммитов, вы можете запустить тест:</p>
231 <pre># cooker</pre>
234 <h3>Работа с Cooker</h3>
236 <p>Опять же, теперь есть два способа работы: внести изменения в чистый wok Hg
237 и запустить Cooker без аргументов, либо готовить пакеты вручную. Cooker
238 позволяет приготовить одиночный пакет, или все пакеты определеной категории,
239 или всю редакцию (flavor) целиком. Вы также можете попытаться приготовить все
240 не приготовленные пакеты, но знайте, что Cooker не был рассчитан для обработки
241 тысяч пакетов.</p>
243 <p>Чтобы приготовить одиночный пакет, то же самое, что дает команда «cook
244 имя_пакета», но с несколькими журналами:</p>
246 <pre># cooker pkg имя-пакета</pre>
248 <p>Чтобы приготовить более одного пакета за раз, у вас есть различные решения.
249 Вы можете использовать существующий список, такой как используемый для редакции
250 Live, вы также можете использовать собственный список, перечислив имена пакетов
251 по одному на строку. Наконец, вы можете приготовить все пакеты категории.</p>
253 <pre>
254 # cooker flavor [имя]
255 # cooker list [/путь/к/списку]
256 # cooker cat [категория]
257 </pre>
259 <p>Cooker позволяет также повторно приготовить указанную ревизию Hg. Это будет
260 полезно, если во время приготовления пакетов сборочный бот был прерван новым
261 коммитом, вы всё равно имеете возможность готовить пакеты вручную:</p>
263 <pre># cooker rev 9496</pre>
266 <h3 id="blocked">Заблокированные пакеты</h3>
268 <p>Cook и Cooker работают со списком заблокированных пакетов, которые не будут
269 готовиться даже в случае получения коммита или, если они будут упомянуты в
270 списке приготовления. Это полезное свойство сборочного бота Cooker. При
271 блокировании и разблокировании пакетов, вы можете добавить свои примечания.
272 Пример блокирования пакетов:</p>
274 <pre>
275 # cook имя_пакета --block
276 # cooker block имя_пакета
277 # cooker -n "Примечание о блокировании имя_пакета"
278 </pre>
280 <p>Список заблокированных пакетов также отображается в веб-интерфейсе Cooker.
281 Чтобы разблокировать пакет, используйте команду unblock или запустите Cook
282 с опцией --unblock:</p>
284 <pre>
285 # cooker unblock имя_пакета
286 # cook имя_пакета --unblock
287 </pre>
290 <h3>CGI/веб-интерфейс Cooker</h3>
292 <p>Чтобы просмотреть наглядные файлы журналов, проследить порядок работы,
293 найти ошибки, вы можете использовать веб-интерфейс Cooker, который по умолчанию
294 находится в папке /var/www/cooker. Если вы не используете изолированное
295 окружение и веб-сервер Busybox HTTPD запущен, то веб-интерфейс будет работать
296 без дополнительных настроек и будет доступен по адресу: <a
297 href="http://localhost/cooker/cooker.cgi">http://localhost/cooker/cooker.cgi</a>
298 </p>
300 <p>Если вы используете изолированную среду, вы должны также установить Cookutils
301 на вашу хост-машину и изменить путь в переменной SLITAZ. Обычно изолированная
302 среда находится по пути:</p>
304 <pre>/home/slitaz/cooking/chroot</pre>
306 <p>Измените /etc/slitaz/cook.conf следующим образом:</p>
308 <pre>SLITAZ="/home/slitaz/cooking/chroot/home/slitaz"</pre>
310 <p>Примечание: не обязательно устанавливать Cookutils на вашу хост-машину, чтобы
311 использовать веб-интерфейс. Если вы используете Lighttpd, вы можете также
312 скопировать файлы cooker.cgi и style.css, например, в папку ~/Public
313 и использовать собственный cook.conf. Преимущество установки Cookutils на
314 хост-машину в получении регулярных обновлений через менеджер пакетов TazPkg.
315 Скажем, вы клонировали или загрузили Cookutils:</p>
317 <pre>
318 $ cp -a cookutils/web ~/Public/cgi-bin/cooker
319 $ cp -f cookutils/cook.conf ~/Public/cgi-bin/cooker
320 </pre>
322 <p>Отредактируйте конфигурационный файл ~/Public/cgi-bin/cooker/cook.conf,
323 указав в переменной SLITAZ нужный путь, и это всё!</p>
326 <h3>Заметки (Cooknotes)</h3>
328 <p>Функция Cooknotes позволяет записывать небольшие личные заметки о сборке
329 пакетов и полезна для совместной работы. Cooknotes была написана, чтобы
330 сопровождающие сборочного бота Cooker в SliTaz могли делиться заметками между
331 собой и с другими участниками. Cooker может блокировать сборку пакета или
332 пакеты можно пересобрать вручную, например, неплохо обратите внимание, когда
333 пакет был заблокирован, чтобы сопровождающий знал, почему администратор сделал
334 это. Cooknotes отображаются в веб-интерфейсе и могут быть проверены в командной
335 строке:</p>
337 <pre>
338 # cooker note "Заблокирован имя_пакета из-за высокой нагрузки на процессор"
339 # cooker notes
340 </pre>
343 <h3>Cooker в качестве сборочного бота</h3>
345 <p>Cooker был задуман как сборочный бот для SliTaz, это означает, что он следит
346 за обновлениями двух wok на Hg, находит различия и готовит все необходимые
347 пакеты. Безопасный и прозрачный способ запуска Cooker в качестве сборочного бота
348 с помощью cron подразумевает использование изолированной среды, но при
349 необходимости он может работать и непосредственно на хосте.</p>
351 <p>Для автоматического запуска Cooker вы должны использовать cron из
352 изолированной среды и добавить одну строку в корень crontabs в папке
353 /var/spool/cron/crontabs. Скажем, вы хотите, чтобы Cooker запускался каждые два
354 часа:</p>
356 <pre>* */2 * * * /usr/bin/cooker</pre>
359 <h3>Запуск Cooker BB при загрузке системы</h3>
361 <p>Окружение Cooker и задачи cron могут быть автоматически запущены при
362 загрузке. Вы должны установить пакет cookutils-daemon на хост и использовать
363 стандартную установку SliTaz, чтобы заставить его работать должным образом
364 (приготовление идет в /home/slitaz/cooking). Запущенная служба при необходимости
365 смонтирует любую виртуальную файловую систему, так же как и папки с исходниками
366 и пакетами. Исходники в /home/slitaz/src связаны с изолированной средой, чтобы
367 вы могли поделиться исходниками пакетов между несколькими версиями (стабильная,
368 cooking, undigest). Установите пакет, если он еще не установлен:</p>
370 <pre># tazpkg get-install cookutils-daemon</pre>
372 <p>Для запуска службы вам необходимо иметь файл описания задачи cron в корне
373 изолированной среды, эта служба работает так же, как и все другие в системы и
374 может управляться командами:</p>
376 <pre># /etc/init.d/cooker [start|stop|restart]</pre>
378 <!-- End content -->
379 </div>
381 <footer>
382 Авторское право © 2011–<span class="year"></span> <a href="http://www.slitaz.org/">SliTaz GNU/Linux</a>
383 </footer>
385 </body>
386 </html>