데비안 패키지를 크로스 빌드하는 방법

데비안 패키지를 크로스 빌드하는 방법

amd64 시스템에서 armhf 패키지를 구축하고 싶습니다. 내 armhf 시스템은 amd64 시스템보다 훨씬 느립니다.

답변1

먼저 다중 아키텍처 환경을 설정해야 합니다(추가 정보):

sudo dpkg --add-architecture armhf
sudo apt update

소스 코드 패키지를 다운로드합니다(사용더 적은예를 들어):

apt-get source less

디렉터리로 이동하여 마지막으로 패키지를 빌드합니다.

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

위 명령의 특수 플래그는 입니다 --host-arch. 다른 플래그의 의미는 다음과 같습니다.

  • 우리는 소스 패키지에 서명하지 않았습니다
  • .changes 파일에 서명하지 않았습니다.
  • 우리는 바이너리 전용 빌드를 수행하고 있습니다.

이 3개는 데비안 개발자/유지관리자와 같은 공개 저장소를 구축하는 사람들에게만 관련됩니다.

답변2

속도보다 편의성을 중시하는 경우 다음 방법을 사용할 수 있습니다.게임ARM 시스템을 시뮬레이션합니다.

필요한 도구가 포함된 패키지를 설치합니다.pbuilder-dist:

sudo apt install ubuntu-dev-tools

다음 명령은 빌드용 chroot를 생성하고 해당 tarball(이 경우 armhf 아키텍처용 Debian 8 시스템)을 생성합니다.

pbuilder-dist jessie armhf create

특정 패키지의 소스를 얻으세요:

apt-get source bb

빌드 패키지:

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

내 컴퓨터에서는 이 작업에 약 370초가 걸리고, 내가 만든 ARM 시스템에서는 약 250초가 걸립니다.

답변3

데비안 9에서는 pbuilder를 사용하세요:

pbuilder build --host-arch armhf foo.dsc

또는 빌드:

sbuild --host=armhf foo.dsc

아니요, 추가 chroot를 설정할 필요가 없습니다. 기본적으로 빌드된 일반 chroot가 작동합니다.

( 오랫동안 다양한 방법을 사용하여 sbuild지원되었습니다 . --host버전 0.227에 pbuilder추가되었으며 --host-archDebian 8 사용자는 Jessie 백포트에서 필요한 패키지를 찾을 수 있습니다.)

관련 정보