自明ではない依存関係(gtkなど)を持つパッケージの複数のバージョン(i386
およびAMD64
)をビルドできるようにしたいと思います。
ビルドスクリプトはcmake
を使用します。
現時点では、コマンドdebuild -i -us -uc -b
はubuntu 64bitsディストリビューションでのみAMD64
をビルドし、クロスコンパイルツールチェーンをインストールしていません。
両方のプラットフォームのバイナリをビルドするにはどうすればよいですか?
パッケージング(つまりdebuild
)はここでは難しい部分ではありません:アプリケーションの構築はそうです。
64ビットシステムでi386
バイナリをビルドする方法は多数あります
virtualbox でインストールするのは簡単です。
これは群を抜いて最も簡単ですが、大量のディスク容量が必要になるため、システム全体をゼロからセットアップする必要があります。
アイデアは、64ビット設定で最小限のi386サンドボックスを作成することです。
Chrootにアプリケーションのすべてのビルドツールチェーンとi386依存関係をインストールし、そこからビルドを実行します。
このアプローチはvmアプローチよりも軽く、かなりの分離を提供します。
Kaizouチュートリアル 方法を明確に説明
Gtk valaアプリケーションを作成する準備ができているchrootは、ハードドライブで約700Mを消費します。
cmakeは、multilibツールチェーンがインストールされていれば、アプリケーションを簡単に構築できます。
Multilibツールチェーンは、次の方法でインストールできます
Sudo apt-get install g++-multilib
次に、m32
パラメータを指定してcmakeを実行し、i386バイナリをビルドできるようにします これは簡単です 。
もちろん、アプリケーションの依存関係のすべてのi386バリアントをコンピューターにインストールする必要があります。
apt
神があなたと一緒にいるなら、これは次の方法で行うことができます:
dpkg --add-architecture i386
apt-get update
apt-get install libgtk-3-dev:i386 libgee-0.8-dev:i386 ...
これが完了したら、光沢のあるi386
バイナリをパッケージ化できます
debuild -ai386 -i -us -uc -b
debuild clean