Вход:  Пароль:  
FreeSource: AltLinux/Dokumentacija/Hasher ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия AltLinux/Dokumentacija/Hasher за 2006-08-25 00:49:19..

<u style="display: none;">... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... <a href='http://www.ringtones-dir.com'>free ringtones</a> : [http://www.ringtones-dir.com download ringtones] – [HTTP://www.ringtones-dir.com download ringtones] : [nokia ringtones|http://www.ringtones-dir.com] – [nokia ringtones|HTTP://www.ringtones-dir.com] : http://www.ringtones-dir.com/download/ : ring tones : ringtones download : “samsung ringtones” http://www.ringtones-dir.com : [http://www.ringtones-dir.com|ringtones free] </u>==Сборка программ для ALT Linux с использованием hasher==


Оглавление документа


Введение


Часто во время сборки пакетов по зависимостям предлагается установить очень много «лишнего» ПО. Это не всегда бывает удобно: не хочется «мусорить» в уже рабочей системе или вообще нежелательно в ней иметь некоторые средства (например, средства разработки на сервере). Часто банальной причиной является нежелание где-то искать это ПО – этот процесс утомляет, особенно если репозитарий пакетов для дистрибутива представлен в виде нескольких дисков, то всё сводится к «жонглированию» дисками...


Поэтому в дистрибутивы ALT Linux попадают только пакеты, заботливой рукой мантейнера проведённые через технологию hasher. Эта технология позволяет собирать пакеты внутри «чистого» окружения (chroot), которое создаётся из числа пакетов, входящих в состав описанных на пользовательской машине репозитариев. Т.е. в чистом окружении устанавливаются все необходимые для сборки данного пакеты (сборочная среда), затем в этом окружении и происходит сборка. В реальную систему пакеты при этом не ставятся. Таким образом, на входе hasher получает src.rpm пакет, а на выходе выдаёт уже собранные (только из данного src.rpm) пакеты, которые мы уже можем использовать в наших репозитариях для установки на рабочие системы.


За технологию hasher отвечают два пакета: hasher и hasher-priv, для работы последнего также нужен пакет sisyphus_check.
Внутри пакета hasher содержится краткая, но ёмкая документация: README, QUICKSTART и FAQ файлы, а также man-страницы, правда, они на английском языке, хотя разработчики программы вполне русскоговорящие. Этой документации, в принципе, хватает, чтобы начать работать c hasher, а в FAQ рассмотрены некоторые проблемы, которые могут возникать в работе. Но рассмотрим дополнительно некоторые аспекты работы с hasher.


Установка hasher


На данном этапе все просто. От пользователя root выполняем:


# apt-get install hasher


Затем необходимо подготовить hasher – объявить, что какой пользователь имеет право пользоваться услугами hasher:


# hasher-useradd koal


Теперь этому пользователю нужно заново войти в систему (причём предварительно полностью завершив сеанс, запуск нового терминального сеанса, например, в konsole, не приведёт к нужному эффекту).


Сборка программ в hasher


Сейчас работа должна происходить от обычного пользователя (но добавленного с помощью hasher-useradd). Сначала необходимо создать каталог, в котором будет строиться сборочная среда:


$ mkdir HASHER


Рабочий каталог hasher должен быть доступен на запись пользователю, запускающему сборку. Кроме того, его не следует располагать на файловой системе, которая смонтирована с опциями noexec или nodev.
Следует также обратить внимание, что hasher лучше с локальными репозитариями, то есть описанными (в /etc/apt/sources.list) с помощью file: или copy:.


После этого можно приступать к сборке:


$ hsh HASHER freetype-2.1.9-alt2.src.rpm


здесь


При удачной сборке полученные пакеты будут лежать в HASHER/repo/<платформа>/RPMS.hasher/. А если произошла ошибка, то информация о ней будет выведена на экран. Например, это информация о том, что какие-то пакеты, необходимые для сборки данного, не были обнаружены в доступных репозитариях.


Кстати, указанный выше репозитарий (HASHER/repo/<платформа>/RPMS.hasher/) можно использовать для установки, сразу после описания его в /etc/apt/sources.list.


Многократная сборка


(описал Женя Остапец сиречь eostapets@)


Проблемы


Разные архитектуры


Однако, как показала практика, на деле всё происходит не так гладко – при последующей сборке других пакетов может выдаваться ошибка вида:



Дело в том, что на платформах i686 (athlon, Kx, pentium4) сборка автоматически происходит для неё. Вот что сказал Алексей Фролов в community@altlinux.ru:



Тогда возможный путь решения проблемы находится в man hsh в виде опции --target. То есть сборку можно осуществлять следующим образом:


$ hsh --target=i586 HASHER freetype-2.1.9-alt2.src.rpm


Но приведённая выше ошибка выдавалась все равно. Оказалось, что когда-то давно пакет freetype2 версии 2.1.9 был уже собран под платформу athlon и положен в репозитарий для данной платформы. И hasher пытался использовать пакеты именно этой сборки. Поэтому я удалил из athlon-репозитария все пакеты, касающиеся freetype-2.1.9: freetype2, freetype2-demos, freetype2-devel. После этого сборка прошла успешно.


Самосборные пакеты


Следующая проблема может возникнуть при самосборных src.rpm: hasher будет ругаться на неверный PACKAGER у собираемого пакета:



Тут всё дело в том, что hasher предназначается для тестирования сборки пакетов перед отправкой их в Sisyphus, поэтому помимо самой сборки происходит проверка на правильность заполнения служебной информации об rpm-пакете. В случае с Sisyphus, пакеты в нём могут размещать только члены ALT Linux Team, соответственно, в поле PACKAGER должен быть указан один их них. Это проверяется утилитой sisyphus_check по наличию altlinux.com|net|org|ru после "@". man hsh говорит, что данную проверку можно отключить, указав опцию --no-sisyphus-check[=LIST], где LIST – список пропускаемых тестов. О тестах, которые может пропустить sisyphus_cheсk, логичнее спросить у него самого:


$ sisyphus_cheсk --help


Итак, пробуем отключить тест на PACKAGER, а заодно и проверку GPG-подписи:


$ hsh --target=i586 --no-sisyphus-check=packager,gpg HASHER some-packet.src.rpm


Теперь работает...




Спасибо за помощь в «разборках» с hasher Алексею Фролову aka raorn.


Страницы, ссылающиеся на данную: AltLinux/Features


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]