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

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

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

Но загрузка не удалась с ошибкой:

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

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

2 ответа

Решение

Ответ в том, что вы этого не делаете. 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 не будут сильно мешать моей системе)

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

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

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