> lsb_release -c
Codename: precise
> sudo apt-get install debhelper pbuilder
> mkdir -p ~/bin
> ln -s /usr/share/doc/pbuilder/examples/pbuilder-distribution.sh ~/bin/pbuilder-precise
> mkdir ~/pbuilder
> ~/bin/pbuilder-precise create
<...много текста...>
см. https://wiki.ubuntu.com/PbuilderHowto#Universe_support
> touch ~/.pbuilderrc
> echo 'COMPONENTS="main restricted universe multiverse"' >> ~/.pbuilderrc
> ~/bin/pbuilder-precise update --override-config
При сборке новых пакетов по зависимости могут понадобится пакеты, которые тоже были собраны локально, и котрых нет во внешних репозиториях. Чтобы использовать такие пакеты, делается локальный репозиторий и подключается в базовый образ.
Рецептов много и разных: в Ubuntu-документации на pbuilder, StackOverflow, статьи в блогах. Простой, рабочий и легко контролируемый способ описывает debian’овая wiki (http://wiki.debian.org/PbuilderTricks):
1.
Создаем каталог для пакетов (например, ~/pbuilder-local-deps
) и каталог для хук-скриптов (например, ~/.pbuilder-hooks
)
Названия каталогов произвольные. Главное – в дальнейших настройках ссылаться на них правильно.
> mkdir -p ~/pbuilder-local-deps
> mkdir -p ~/.pbuilder-hooks
2.
Добавляем в конец конфига ~/.pbuilderrc
(подставить свой логин):
OTHERMIRROR="deb file:///home/<user>/pbuilder-local-deps ./"
BINDMOUNTS="/home/<user>/pbuilder-local-deps"
HOOKDIR="/home/<user>/.pbuilder-hooks"
EXTRAPACKAGES="apt-utils"
3.
Если базовый образ еще не создан – создаем, если создан – обновяем, чтобы локальный репозиторий попал в sources.list
> ~/bin/pbuilder-precise update --override-config
4.
Добавляем хук в соответствующий каталог (/home/<user>/.pbuilder-hooks
)
Назвать скрипт рекомендуют D05deps, не забыть сделать его исполняемым, в имя каталога подставить свой логин:
> touch ~/.pbuilder-hooks/D05deps
> chmod a+x ~/.pbuilder-hooks/D05deps
> cat <<EOF > ~/.pbuilder-hooks/D05deps
#!/bin/sh
(cd /home/<user>/pbuilder-local-deps; apt-ftparchive packages . > Packages)
apt-get update
EOF
Т.е. содержание скрипта:
#!/bin/sh
(cd /home/<user>/pbuilder-local-deps; apt-ftparchive packages . > Packages)
apt-get update
4a.
Для надежности копируем какой-нибудь .deb в pbuilder-local-deps, делаем sudo ~/.pbuilder-hooks/D05deps
и обновляем базовый образ.
5.
Собираем “библиотеку” (пакет-1)
6.
Копируем получившиеся .deb-файлы в /home/<user>/pbuilder-local-deps
7.
Собираем “приложение” (пакет-2, зависящий от пакет-1)
В следующий раз начинать с пункта 5 :-).
Требуется.
Можно разрешить всегда: ALLOWUNTRUSTED=yes в ~/.pbuilderrc