Сборка пакета для другой архитектуры
Я пытаюсь пропатчить и пересобрать пакет (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.