Почему Launchpad работает по-разному с 64- и 32-битными пакетами?

Я делаю пакеты Ubuntu из исходного кода геологической программы. Я могу создавать пакеты deb на своем ПК, а также Launchpad может создавать двоичные пакеты для 32-битных ОС.

Я заметил странное поведение Launchpad. Он делает как разработку (libfoo-dev), так и разделяемую библиотеку (libfoo) из загруженного исходного кода для i386, хотя он делает только двоичный пакет для amd64 из того же кода. Просматривая журналы сборки i386 и amd64 , я обнаружил, что для amd64 вызывается debian/rules binary-arch вместо debian/rules binary. Это заставляет мой источник не создавать пакет разработки для amd64.

Как я могу решить эту проблему? Журналы сборки и источники пакетов доступны в ppa:soroush-r/geopsy-deb, если вы хотите посмотреть.

1
задан 22 August 2013 в 04:32

1 ответ

Архитектурно-независимые пакеты (где Architecture: all установлено в debian/control) построены только на одной архитектуре, которая является i386 для Ubuntu. Только пакеты, зависящие от архитектуры, построены на всех других архитектурах. Вот почему debian/rules binary вызывается на i386, а debian/rules binary-arch на amd64, armhf и powerpc.

Вы установили Architecture: all для своих пакетов -dev. Это правильно, если пакет -dev одинаков для каждой архитектуры. Вы увидите, что пакет .deb заканчивается _all.deb вместо _amd64.deb или _i386.deb. _All.deb будет построен на i386, но также будет использоваться на amd64.

Вы должны изменить архитектуру пакета -dev на Architecture: any в debian/control, если вам нужен другой контент для пакета amd64 -dev. Если пакет -dev должен иметь идентичное содержимое на amd64, чем на i386, все работает правильно, и у вас не должно возникнуть проблем.

0
ответ дан 22 August 2013 в 04:32

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

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