Cómo crear un package de Debian de forma cruzada

Quiero build un package armhf en una máquina amd64. Mi máquina armhf es mucho más lenta que mi amd64.

Primero tenemos que configurar el entorno multi-arch ( más información ):

sudo dpkg --add-architecture armhf sudo apt update 

Descargue el package fuente (utilizando less como ejemplo):

 apt-get source less 

Navega al directory y, finalmente, crea el package:

 cd less-458 dpkg-buildpackage -us -uc -b --host-arch armhf 

La bandera especial en el command de arriba es --host-arch . Las otras banderas significan:

  • No estamos firmando un package fuente
  • No estamos firmando el file .changes
  • Estamos haciendo una construcción solo binaria

Esos 3 solo son relevantes para aquellos que crean repositorys públicos, como Debian Developers / Maintainers.

Si le importa más la comodidad que la velocidad, puede usar el siguiente método, que usa qemu para emular un sistema ARM.

Instale el package que obtuvo la herramienta que necesitamos, pbuilder-dist :

 sudo apt install ubuntu-dev-tools 

El siguiente command crea un chroot para build y crea un tarball del mismo (en este caso un sistema Debian 8 para la architecture armhf):

 pbuilder-dist jessie armhf create 

Obtenga fonts de algún package:

 apt-get source bb 

Construye el package:

 pbuilder-dist jessie armhf bb_1.3rc1-8.3.dsc 

Esto tomó aproximadamente 370 segundos en mi máquina, y aproximadamente 250 segundos en el sistema ARM que estaba construyendo.