web-dev-qa-db-ja.com

debuildを使用してAMD64ラップトップでi386およびAMD64パッケージをビルドするにはどうすればよいですか

自明ではない依存関係(gtkなど)を持つパッケージの複数のバージョン(i386およびAMD64)をビルドできるようにしたいと思います。

ビルドスクリプトはcmakeを使用します。

現時点では、コマンドdebuild -i -us -uc -bはubuntu 64bitsディストリビューションでのみAMD64をビルドし、クロスコンパイルツールチェーンをインストールしていません。

両方のプラットフォームのバイナリをビルドするにはどうすればよいですか?

5
Name is carl

パッケージング(つまりdebuild)はここでは難しい部分ではありません:アプリケーションの構築はそうです。

64ビットシステムでi386バイナリをビルドする方法は多数あります

32ビット仮想マシンを使用する

virtualbox でインストールするのは簡単です。

これは群を抜いて最も簡単ですが、大量のディスク容量が必要になるため、システム全体をゼロからセットアップする必要があります。

Chrootのセットアップ

アイデアは、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   
3
Name is carl