Сборка пакета для другой архитектуры

Я пытаюсь пропатчить и пересобрать пакет (libvorbis, для чего это стоит) на 64-битном Xubuntu 14.04. В прошлом, когда я хотел сделать что-то подобное, я следовал этой формуле:

sudo apt-get build-dep <package>
apt-get source <package>
cd <package-dir>
patch -Np1 < ../<patch>
dch -i
dpkg-source --commit
debuild -us -uc
cd ..
sudo dpkg -i <new.deb>

И для исправления Вина в прошлом это работало как очарование. Для моего текущего проекта мне удалось пройти весь путь и перестроить пакеты, но когда я пошел устанавливать новые, я получил:

dpkg: error processing package libvorbis0a:amd64 (--install):
 package libvorbis0a:amd64 1.3.2-1.3ubuntu2 cannot be configured because libvorbis0a:i386 is at a different version (1.3.2-1.3ubuntu1)

Я собирался попробовать удалить 32-битный пакет, так как я не уверен, что он мне действительно нужен, но это сломало зависимости для многих вещей. Как я могу изменить свою процедуру (или перезапустить ее), чтобы также собрать 32-разрядные версии пакета для параллельной установки? Является ли это возможным?

Изменить: я пытался apt-get source libvorbis:i386, но получил:

E: Can not find a package for architecture 'i386'
E: Unable to find a source package for libvorbis:i386

Изменить 2: apt-get source libvorbis0a:i386 казалось, работает, но я только что снова получил 64-битные пакеты.

1 ответ

Решение

После осмотра я обнаружил, что вы не можете делать то, что вам нужно, несмотря на совершенство multiarch, по крайней мере, без установки тонны пакетов и / или создания chroot-среды.

К счастью, кажется, что сборочные боты и сопровождающие должны это делать, поэтому есть пара инструментов, которые могут послужить этому предложению. Я собираюсь использовать pbuilderпо двум причинам он доступен в основных репозиториях Debian, ergo Ubuntu ', и представляет собой автоматизированное создание чистой экосистемы, которую можно обновлять / удалять / обслуживать по своему усмотрению, не затрагивая основную систему, кроме ее гибкости. Возможно, через некоторое время я напишу о кросс-цепочке.

Итак, начнем с установки pbuilder а также ubuntu-dev-tools пакеты и после этого запуска pbuilder-dist trusty i386 create (Вы также можете указать целевой релиз, используя --distribution trusty, например). Теперь, в зависимости от вашей загрузки и скорости системы, это может занять некоторое время. После окончания вы сможете создать любой пакет, используя только следующее:

pbuilder-dist trusty i386 libvorbis_1.3.2-1.4.dsc

Ты можешь измениться trusty для любой другой доступной версии. Это сгенерирует версию вашего пакета для i386.

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