Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.
Сам Себе Incoming или Как Построить Свой ftp.a.o/p/d/A/Sisyphus
Многие изобретают свои велосипеды для хранения самосборных пакетов. Один из велосипедов изобретён для поддержания самого проекта Sisyphus, в этой заметке рассказано как им пользоваться.
Подготовка
Первым делом надо поставить пакет sisyphus используя, например, apt-get. В пакете есть один корфигурационный файл /etc/sisyphus/config с настройкапи по умолчанию, правим его под себя:
PREFIX – это корень нашего «Сизифёнка». Я использую /var/ftp/pub/distributions/local .
ARCHITECTURES – все архитектуры, которые мы поддерживаем. У меня это “i686 i586 noarch”, your mileage may vary.
От DISTRIBUTION до VERSION – текстовые метаданные для base/release. Редактируются по своему усмотрению, см.такж. genbasedir --help .
GENBASEDIR_OPT_ARGS – дополнительные опции для genbasedir. Я для наглядности добавил --progress .
GENBASEDIR_SIGNING_ARGS – опции создания gpg подписи для genbasedir, измените аргумент --default-key под себя.
PERM_* – опции для chgrp/chmod, которые будут применяться к репозитарию.
START_DIR – каталог, откуда sisyphus_add_new будет забирать пакеты.
Настройка окружения
Надо создать структуру каталогов в $PREFIX:
Примерный shell-pattern для mkdir -p может выглядеть как «PREFIX/{files/{ARCHITECTURES/{RPMS},SRPMS,list},ARCHITECTURES/Unknown action "S,}RPMS.classic,base"», где ARCHITECTURES равно "{список архитектур разделённый запятыми}«. Довольно страшная конструкция ;-)
В каталоге $START_DIR надо создать каталоги SRPMS и RPMS.
Добавляем пакеты
Перед тем как добавлять новые пакеты в «Сизифёнка», надо добавить их имена в списки files/list/list.src.classic и files/list/list.АРХИТЕКТУРА.classic. Несмотря на то, что в «Старшем Сизифе» списки имеют не плоскую структуру, пакет sisyphus работает с простыми списками, где пакеты пересичлены по одному на строку без всяких связей.
Собраные пакеты надо поместить в соответствующие подкаталоги $START_DIR, запустить sisyphus_add_new, если всё прошло гладко, запускаем sisyphys_relink и sisyphus_genhash.
Теперь можно прописать нашего «Сизифёнка» в sources.list с компонентой classic. Не забывайте, что архитектур несколько!
Цепляем hasher
Достать пакеты из hasher и положить их в $START_DIR можно примерно следующим скриптом (untested):
Если используется gear, то можно воспользоваться скриптом gear-hsh-build с примерно следующей обвязкой:
Этот же скрипт (точнее его часть после gear-hsh-build) можно использовать совместно с первым скриптом.