# HG changeset patch # User Aleksej Bobylev # Date 1362763415 0 # Node ID 472ed9edd034d3570f07e19dd3526ab0c2f1ff03 # Parent 28740f8c6aeee2b38fd716ff36bbed40749e652c Translate docs into Russian diff -r 28740f8c6aee -r 472ed9edd034 .hgtags --- a/.hgtags Mon Mar 04 09:35:13 2013 +0000 +++ b/.hgtags Fri Mar 08 17:23:35 2013 +0000 @@ -15,8 +15,6 @@ c78dde3b62eff80b35be3577a4dc8dea85bcaab6 2.0 0b66cd1ea4e8be57061b8ab27f97a6e54b7034ae 3.0 21033ee28b1541f725354242697f657964f96768 3.1 -0e4ec874b3bd08568c2177648716f97902402343 3.1.1 -0e4ec874b3bd08568c2177648716f97902402343 3.1.1 ab53ffd168278aeebdc3c10b2c844d4c846f9bb3 3.1.1 f764974d085e11e85d2326e7362dffafd0c88a80 3.1.2 0e5af63ef05012fed1704ce86d4ebbb25b868be1 3.1.3 diff -r 28740f8c6aee -r 472ed9edd034 doc/cookutils.ru.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/cookutils.ru.html Fri Mar 08 17:23:35 2013 +0000 @@ -0,0 +1,384 @@ + + + + + Документация CookUtils + + + + + + +
+ +

Cook и Cooker в SliTaz

+ +

Пакет CookUtils в SliTaz содержит утилиты, которые помогут вам собрать пакеты +SliTaz. Они просты в использовании и изучении, быстрые и легковесные. Вы сможете +создавать пакеты SliTaz при помощи всего нескольких команд. В состав CookUtils +входят утилита cook («повар») и Cooker («плита»).

+ +

Cook компилирует исходный код и создает пакет, ведет журнал и проверяет +качество рецепта и пакета. Cooker — это сборочный бот, обладающий большей +автоматизацией, он может использоваться в качестве интерфейса для cook, +поскольку он имеет CGI/веб-интерфейс, позволяющий просматривать журналы cook в +приятном цветном виде. Cook и Cooker используют одни и те же файлы баз данных и +wok, они оба используют списки заблокированных и +испорченных пакетов и т.п.

+ +

Для получения технической информации (стиль кодирования и т.д.), обратитесь к +README, находящемуся в исходниках, либо в папке /usr/share/doc/cookutils.

+ + +

Использование cook

+ +

Cook содержит небольшую встроенную справку по использованию, которую можно +отобразить командой usage. Также он имеет несколько параметров для +выполнения специальных задач над пакетами, как перед приготовлением, так и после +него. Итак, чтобы получить справку по использованию:

+ +
# cook usage
+ + +

Краткая инструкция

+ +

Первое, что вам нужно сделать, прежде чем начнете собирать пакеты — настроить +окружение. Есть два рекомендованых способа работы: собирать непосредственно на +хосте или собирать в изолированном chroot-окружении (для защиты хоста). Если вы +хотите работать в изолированном окружении, вы можете установить и использовать +Tazdev для создания окружения и переключения на него:

+ +
# tazdev gen-chroot && tazdev chroot
+ +

По умолчанию Tazdev создает изолированное окружение в +/home/slitaz/cooking/chroot, но вы можете указать другой путь в параметре:

+ +
+# tazdev gen-chroot /home/slitaz/4.0/chroot
+# tazdev chroot /home/slitaz/4.0/chroot
+
+ +

Расположение изолированного окружения не важно, ведь когда вы будете +находиться в нём, вы будете использовать стандартные пути SliTaz, такие как +/home/slitaz/wok для папки wok и /home/slitaz/log для всех журналов cook. Как +обычно, вы можете вывести справку об использовании tazdev при помощи команды:

+ +
# tazdev usage
+ +

При использовании изолированного окружения есть две специальные папки, +смонтированные с параметром bind: src и packages. Исходники всех пакетов +по умолчанию сохраняются в /home/slitaz/src; эта папка монтируется в chroot для +того, чтобы утилиты могли ее использовать. Этот метод позволяет обмениваться +исходниками между несколькими изолированными окружениями, например, одно +стабильное, а другое нестабильное. Папка с готовыми пакетами по умолчанию +находится в /home/slitaz/версия/packages, вне изолированного окружения; +пакеты здесь находятся в безопасности в случае удаления chroot по ошибке.

+ + +

Приступая к работе

+ +

Итак, вы решили, как вы хотите работать, теперь давайте настроим окружение +cook. Cook использует конфигурационный файл cook.conf, если вы хотите +использовать собственные пути для папок и файлов SliTaz, вам придется изменить +его. Установка создаст некоторые папки и файлы для отслеживания работы и ошибок, +все файлы являются простыми текстовыми файлами, которые можно открыть в любом +текстовом редакторе. Чтобы подготовить окружение:

+ +
# cook setup
+ +

Команда setup может иметь параметр --wok, который позволяет получить копию +wok SliTaz при настройке окружения cook. Даже если вы еще не являетесь +официальным разработчиком, вы можете получить копию wok и использовать +существующие пакеты в качестве примера для создания собственных. Для настройки +и клонирования wok по умолчанию (версии cooking) или версии undigest:

+ +
+# cook setup --wok
+# cook setup --undigest
+
+ + +

Проверка окружения

+ +

Cook понимает команду test, по которой он создаст пакет и приготовит его. +Это позволяет определить, работает ли окружение и является примером пакета +с рецептом. Созданный фиктивный пакет называется «cooktest», его можно удалить +после тестирования. Для приготовления тестового пакета:

+ +
# cook test
+ + +

Создание и приготовление

+ +

Если ваша среда настроена правильно, вы можете приступить к созданию +и компиляции пакетов SliTaz из вашего wok. Чтобы создать новый пакет с пустым +рецептом (вы также можете создавать рецепты в интерактивном режиме):

+ +
+# cook new имя-пакета
+# cook new имя-пакета --interactive
+
+ +

Вы только что создали новый пакет, теперь вам нужно отредактировать рецепт +в вашем любимом текстовом редакторе. Когда рецепт будет готов, вы можете +приготовить его:

+ +
# cook имя-пакета
+ +

Если все прошло успешно, то вы найдете свой пакет в папке $SLITAZ/packages, +а все созданные файлы — в $SLITAZ/wok/имя-пакета.

+ + +

Приготовление с установкой

+ +

Если вы хотите приготовить и установить пакет одной командой:

+ +
# cook имя-пакета --install
+ + +

Получение исходников

+ +

Если вам нужно загрузить только исходники пакета, не создавая его, вы можете +использовать опцию --getsrc как показано ниже:

+ +
# cook имя-пакета --getsrc
+ + +

Очистка пакетов

+ +

После компиляции и упаковки в wok по-прежнему остаются файлы, которые +занимают место на диске. Для очистки выбранного пакета:

+ +
# cook имя-пакета --clean
+ +

Вы также можете очистить сразу целый wok. Если решите сохранить связанные +с SliTaz файлы, вы можете удалить только исходники:

+ +
+# cook clean-wok
+# cook clean-src
+
+ + +

Поиск

+ +

Cook поддерживает простую функцию поиска пакета в wok. Поиск использует grep +и поддерживает регулярные выражения:

+ +
# cook search busybox
+ + +

База данных пакетов

+ +

Cook может создать список пакетов в wok, а также создать соответствующий +список пакетов для TazPkg. Это позволяет легко создавать локальный репозиторий +пакетов, а также используется для создания официального списка пакетов SliTaz, +находящихся на зеркалах. Для просмотра текущего wok (вам не нужно быть +суперпользователем):

+ +
$ cook list-wok
+ +

При создании базы данных пакетов Cook проверит наличие редакций (flavors) в +/home/slitaz/flavors и при их наличии укомплектует все редакции новейшими +пакетами из списка доступных. Чтобы создать список пакетов и файлы редакций +Live:

+ +
# cook pkgdb
+ + +

Cooker

+ +

Cooker является сборочным ботом, он предназначен в первую очередь для +проверки изменений в wok, создания упорядоченного списка приготовления, и +приготовления изменившихся пакетов. Он также может быть использован в качестве +интерфейса для cook, так как они оба используют одинаковые файлы. Cooker может +быть также использован для приготовления большого списка пакетов за один прием, +такого, как, например, все пакеты редакции (flavor). Cooker имеет хороший +CGI/веб-интерфейс, который работает по умолчанию на любой системе SliTaz, +поскольку она обеспечивает поддержку CGI с помощью веб-сервера HTTPD BusyBox.

+ +

Cooker содержит небольшую встроенную справку об использовании и о коротких +командах. Например, чтобы отобразить информацию об использовании:

+ +
+# cooker usage
+# cooker -u
+
+ + +

Настройка Cooker

+ +

Так же как и Cook, Cooker нуждается в рабочей среде, прежде чем начать его +использовать. Основное отличие от среды Cook в том, что Cooker требует два wok. +Один чистый wok с Hg, в качестве справочного, а другой — ваш экспериментальный +сборочный wok. В таком случае можно будет легко сравнить между собой оба wok +и определить изменения. Если у вас уже есть окружение Cook, вам необходимо +переместить ваш wok до настройки Cooker, или он будет жаловаться. Программа +установки также установит набор пакетов для разработки, которые могут быть +настроены в конфигурационном файле cook.conf и переменной SETUP_PKGS. +Для настройки окружения Cooker:

+ +
# cooker setup
+ +

Если всё прошло хорошо, то теперь у вас есть 2 wok, установлены базовые +пакеты разработки и созданы все необходимые файлы. Поведение по умолчанию +заключается в проверке коммитов, вы можете запустить тест:

+ +
# cooker
+ + +

Работа с Cooker

+ +

Опять же, теперь есть два способа работы: внести изменения в чистый wok Hg +и запустить Cooker без аргументов, либо готовить пакеты вручную. Cooker +позволяет приготовить одиночный пакет, или все пакеты определеной категории, +или всю редакцию (flavor) целиком. Вы также можете попытаться приготовить все +не приготовленные пакеты, но знайте, что Cooker не был рассчитан для обработки +тысяч пакетов.

+ +

Чтобы приготовить одиночный пакет, то же самое, что дает команда «cook +имя_пакета», но с несколькими журналами:

+ +
# cooker pkg имя-пакета
+ +

Чтобы приготовить более одного пакета за раз, у вас есть различные решения. +Вы можете использовать существующий список, такой как используемый для редакции +Live, вы также можете использовать собственный список, перечислив имена пакетов +по одному на строку. Наконец, вы можете приготовить все пакеты категории.

+ +
+# cooker flavor [имя]
+# cooker list [/путь/к/списку]
+# cooker cat [категория]
+
+ +

Cooker позволяет также повторно приготовить указанную ревизию Hg. Это будет +полезно, если во время приготовления пакетов сборочный бот был прерван новым +коммитом, вы всё равно имеете возможность готовить пакеты вручную:

+ +
# cooker rev 9496
+ + +

Заблокированные пакеты

+ +

Cook и Cooker работают со списком заблокированных пакетов, которые не будут +готовиться даже в случае получения коммита или, если они будут упомянуты в +списке приготовления. Это полезное свойство сборочного бота Cooker. При +блокировании и разблокировании пакетов, вы можете добавить свои примечания. +Пример блокирования пакетов:

+ +
+# cook имя_пакета --block
+# cooker block имя_пакета
+# cooker -n "Примечание о блокировании имя_пакета"
+
+ +

Список заблокированных пакетов также отображается в веб-интерфейсе Cooker. +Чтобы разблокировать пакет, используйте команду unblock или запустите Cook +с опцией --unblock:

+ +
+# cooker unblock имя_пакета
+# cook имя_пакета --unblock
+
+ + +

CGI/веб-интерфейс Cooker

+ +

Чтобы просмотреть наглядные файлы журналов, проследить порядок работы, +найти ошибки, вы можете использовать веб-интерфейс Cooker, который по умолчанию +находится в папке /var/www/cooker. Если вы не используете изолированное +окружение и веб-сервер Busybox HTTPD запущен, то веб-интерфейс будет работать +без дополнительных настроек и будет доступен по адресу: http://localhost/cooker/cooker.cgi +

+ +

Если вы используете изолированную среду, вы должны также установить Cookutils +на вашу хост-машину и изменить путь в переменной SLITAZ. Обычно изолированная +среда находится по пути:

+ +
/home/slitaz/cooking/chroot
+ +

Измените /etc/slitaz/cook.conf следующим образом:

+ +
SLITAZ="/home/slitaz/cooking/chroot/home/slitaz"
+ +

Примечание: не обязательно устанавливать Cookutils на вашу хост-машину, чтобы +использовать веб-интерфейс. Если вы используете Lighttpd, вы можете также +скопировать файлы cooker.cgi и style.css, например, в папку ~/Public +и использовать собственный cook.conf. Преимущество установки Cookutils на +хост-машину в получении регулярных обновлений через менеджер пакетов TazPkg. +Скажем, вы клонировали или загрузили Cookutils:

+ +
+$ cp -a cookutils/web ~/Public/cgi-bin/cooker
+$ cp -f cookutils/cook.conf ~/Public/cgi-bin/cooker
+
+ +

Отредактируйте конфигурационный файл ~/Public/cgi-bin/cooker/cook.conf, +указав в переменной SLITAZ нужный путь, и это всё!

+ + +

Заметки (Cooknotes)

+ +

Функция Cooknotes позволяет записывать небольшие личные заметки о сборке +пакетов и полезна для совместной работы. Cooknotes была написана, чтобы +сопровождающие сборочного бота Cooker в SliTaz могли делиться заметками между +собой и с другими участниками. Cooker может блокировать сборку пакета или +пакеты можно пересобрать вручную, например, неплохо обратите внимание, когда +пакет был заблокирован, чтобы сопровождающий знал, почему администратор сделал +это. Cooknotes отображаются в веб-интерфейсе и могут быть проверены в командной +строке:

+ +
+# cooker note "Заблокирован имя_пакета из-за высокой нагрузки на процессор"
+# cooker notes
+
+ + +

Cooker в качестве сборочного бота

+ +

Cooker был задуман как сборочный бот для SliTaz, это означает, что он следит +за обновлениями двух wok на Hg, находит различия и готовит все необходимые +пакеты. Безопасный и прозрачный способ запуска Cooker в качестве сборочного бота +с помощью cron подразумевает использование изолированной среды, но при +необходимости он может работать и непосредственно на хосте.

+ +

Для автоматического запуска Cooker вы должны использовать cron из +изолированной среды и добавить одну строку в корень crontabs в папке +/var/spool/cron/crontabs. Скажем, вы хотите, чтобы Cooker запускался каждые два +часа:

+ +
* */2 * * * /usr/bin/cooker
+ + +

Запуск Cooker BB при загрузке системы

+ +

Окружение Cooker и задачи cron могут быть автоматически запущены при +загрузке. Вы должны установить пакет cookutils-daemon на хост и использовать +стандартную установку SliTaz, чтобы заставить его работать должным образом +(приготовление идет в /home/slitaz/cooking). Запущенная служба при необходимости +смонтирует любую виртуальную файловую систему, так же как и папки с исходниками +и пакетами. Исходники в /home/slitaz/src связаны с изолированной средой, чтобы +вы могли поделиться исходниками пакетов между несколькими версиями (стабильная, +cooking, undigest). Установите пакет, если он еще не установлен:

+ +
# tazpkg get-install cookutils-daemon
+ +

Для запуска службы вам необходимо иметь файл описания задачи cron в корне +изолированной среды, эта служба работает так же, как и все другие в системы и +может управляться командами:

+ +
# /etc/init.d/cooker [start|stop|restart]
+ + +
+ + + + +