AMD64マシンでarmhfパッケージをビルドしたい。私のarmhfマシンは、AMD64マシンよりもかなり遅いです。
まず、マルチアーチ環境をセットアップする必要があります( 詳細 ):
Sudo dpkg --add-architecture armhf
Sudo apt update
ソースパッケージをダウンロードします(例としてlessを使用):
apt-get source less
ディレクトリに移動し、最後にパッケージをビルドします。
cd less-458
dpkg-buildpackage -us -uc -b --Host-Arch armhf
上記のコマンドの特別なフラグは--Host-Arch
。他のフラグは以下を意味します:
これら3つは、Debian Developers/Maintainersのような公開リポジトリを構築しているユーザーにのみ関連します。
速度よりも利便性を重視する場合は、次の方法を使用できます。この方法では、qemを使用して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秒かかりました。
Debian 9では、pbuilderを使用:
pbuilder build --Host-Arch armhf foo.dsc
またはsbuild:
sbuild --Host=armhf foo.dsc
いいえ、追加のchrootをセットアップする必要はありません。ネイティブビルド用の通常のchrootが機能します。
(sbuild
は長い間--Host
をサポートしており、時間の経過とともにさまざまなアプローチを使用しています。pbuilder
はバージョン0.227に--Host-Arch
を追加し、Debian 8ユーザーは必要なパッケージを見つけることができますジェシーのバックポートで。)