Я пытаюсь использовать pbuilder
для загрузки в PPA. Пакет собирается нормально с помощью команды:
sudo pbuilder build <package>_<version>.dsc
Но загрузка завершается с ошибкой:
Source/binary (i.e. mixed) uploads are not allowed.
Говорят, что мне нужно использовать pdebuild
для сборки source package
, но pdebuild
не разрешает зависимости сборки. Как я могу собрать этот пакет, чтобы он мог быть окончательно загружен? Я не хочу устанавливать зависимости вручную.
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.