Debian パッケージをクロスビルドする方法

Debian パッケージをクロスビルドする方法

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つは、Debian開発者/メンテナンス者などの公開リポジトリを構築している人にのみ関連しています。

答え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

Debian 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バックポートで必要なパッケージを見つけることができます。)

関連情報