Criando um pacote para outra arquitetura

2

Estou tentando corrigir e reconstruir um pacote (libvorbis, pelo que vale a pena) no Xubuntu 14.04 de 64 bits. No passado, quando eu queria fazer algo assim, segui esta fórmula:

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>

E para remendar o vinho no passado, funcionou como um encanto. Para o meu projeto atual, consegui percorrer todo o caminho e reconstruir os pacotes, mas quando fui instalar os novos, consegui:

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)

Eu ia tentar desinstalar o pacote de 32 bits, pois não tenho certeza se realmente preciso dele, mas isso quebraria as dependências de muitas coisas. Como posso modificar meu procedimento (ou reexecutá-lo) para também criar as versões de 32 bits do pacote para instalação paralela? É possível?

Editar: eu tentei apt-get source libvorbis:i386 , mas recebi:

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

A edição 2: apt-get source libvorbis0a:i386 pareceu funcionar, mas acabei de novo com pacotes de 64 bits.

    
por glibdud 15.09.2014 / 02:09

1 resposta

1

Depois de bisbilhotar eu descobri que você não pode fazer o que você precisa fazer apesar da bondade multiarch, pelo menos não sem instalar toneladas de pacotes e / ou criar um ambiente chrooted.

Por sorte, parece que buildbots e mantenedores precisam fazer isso, então existem algumas ferramentas que podem servir a essa proposta. Eu vou usar pbuilder , por duas razões, ele está disponível nos repositórios principais do Debian, ergo Ubuntu ', e é a criação automatizada de um ecossistema limpo que pode ser atualizado / excluído / mantido por capricho sem afetar seu sistema principal é flexibilidade. Talvez depois de um tempo eu escrevesse sobre o cross-toolchain.

Portanto, comece instalando os pacotes pbuilder e ubuntu-dev-tools e depois execute pbuilder-dist trusty i386 create (você também pode especificar o release de destino usando --distribution trusty , por exemplo). Agora, dependendo do seu download e da velocidade do sistema, isso pode demorar um pouco. Depois de terminar, você poderá criar qualquer pacote usando apenas o seguinte:

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

Você pode alterar trusty para qualquer outra versão disponível. Isso geraria uma versão i386 do seu pacote.

    
por Braiam 15.09.2014 / 03:28