Как собрать пакет с исходным кодом `pbuilder` для загрузки PPA?

Я пытаюсь использовать pbuilder для загрузки в PPA. Пакет собирается нормально с помощью команды:

sudo pbuilder build <package>_<version>.dsc

Но загрузка завершается с ошибкой:

Source/binary (i.e. mixed) uploads are not allowed.

Говорят, что мне нужно использовать pdebuild для сборки source package, но pdebuild не разрешает зависимости сборки. Как я могу собрать этот пакет, чтобы он мог быть окончательно загружен? Я не хочу устанавливать зависимости вручную.

3
задан 27 December 2013 в 13:16

2 ответа

1117 Ответ таков: вы этого не делаете. pbuilder принимает пакет с исходным кодом и создает двоичные файлы. Он также может взять исходный код без встроенного исходного пакета и создать двоичные файлы, которые вы либо разместите сами, либо добавите в свои собственные системы репозитория debian для размещения самостоятельно.

Это не то, что вам нужно для PPA.


Что вы хотите сделать, и что я настоятельно рекомендую, это чтобы вы следовали традиционным процедурам упаковки и запускали debuild -S для кода с каталогом для пакета, содержащим исходный код, debian/ и все остальное.

Затем, после того как вы скомпилировали исходный пакет с помощью debuild -S, вы можете загрузить созданный файл .changes в один каталог над исходным каталогом в PPA через dput. (этот шаг упоминается в в справочной документации по загрузке PPA на Launchpad ).

Теоретически вы можете использовать pdebuilder для поддержания вашей системы в чистоте и сборки внутри chroot, но читайте мои утверждения по этому вопросу, чтобы узнать, почему она ранее не сработала для вас.


По комментариям вы правильно определили, что debhelper не может найти плагин autoreconf.

Также, как я сказал в моих комментариях к этому ответу, pbuilder и pdebuilder недостаточно умны, чтобы определить зависимости debhelper.

Чтобы решить вашу проблему, чтобы ваши вещи могли собираться, вам придется вручную использовать pbuilder или pdebuilder для входа в chroot. Затем вам нужно будет вручную установить dh-autoreconf в chroot, обычно с apt-get install dh-autoreconf после входа в chroot.

Как только вы это сделаете и сохраните состояние chroot, вы сможете pbuilder или pdebuilder ваш пакет.

(Однако я предпочитаю традиционно работать с пакетами, и мне все равно, чиста ли моя система сборки или нет, все, что я действительно собираю, это пакеты с исходным кодом, и плагины debhelper не будут загромождаться моя система это плохо)

0
ответ дан 27 December 2013 в 13:16

pbuilder используется для сборки двоичных пакетов из исходного пакета. PPA также создает двоичные пакеты из исходных пакетов. Просто dput файл source.changes, который вы создали при создании файла <package>_<version>.dsc.

Одним из основных моментов при использовании pbuilder является локальное копирование среды чистого chroot, которая используется для создания бинарных пакетов как в официальных архивах, так и в PPA.

0
ответ дан 27 December 2013 в 13:16

Другие вопросы по тегам:

Похожие вопросы: