あいまいなGCCリンカのエラーメッセージについて多くのインターネット検索と公開と泣き終わりに、私は外部CPUアーキテクチャで何かを安定して構築する唯一の方法はchroot環境を設定することであるという結論に達しました。私はすでにVirtualBoxでDebianを実行しているので、これはやや興味深いです。これで、仮想マシン内の仮想マシンになります。
chrootに関するさまざまなチュートリアルを読んだときに気に入らない2つのことが見つかりました。
これには、常に以下のように選択したいくつかのURLからシステムをダウンロードするコマンドが含まれています。私はすでに持っている同様のシステムを使用してできるだけ小さくしたいと思いました。
sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ http://mirror.url.com/ubuntu/
- ホストシステム上のプロジェクトをコンパイルすることは実際には言及されていません。私のプロジェクトをどこかにコピーしたくないように、そうであれば、別の仮想ボックスシステムを設定できます。
だから、実際にchrootシステムを作成した人がいるかどうか尋ねたいと思いました。これを使用してプロジェクトをビルドします。。もちろん図書館用にのみ設置するものなので、システムができるだけ小さいと理想的です。これを実行している64ビットシステム用の32ビットバージョンのみをダウンロードしてください。
Linuxプログラマーは、常にLinuxでのプログラミングは、Windowsでのプログラミングがはるかに簡単だと言っています。私はついにこれらのいくつかを経験したいと思います。
ベストアンサー1
私はすでに一つを書いた32ビットchrootを作成するためのチュートリアルですから、ここでは繰り返さずにあなたがすでに読んでいるとしましょう。この回答では、あなたの質問にある特定の事項だけを扱います。
これには、常に以下のように選択したいくつかのURLからシステムをダウンロードするコマンドが含まれています。私はすでに持っている同様のシステムを使用してできるだけ小さくしたいと思いました。
パッケージをダウンロードする必要があります。同じファイルを提供する64ビットパッケージがあるため、ほとんどの32ビットパッケージはシステムにインストールされていないかインストールできません。
インストールする32ビット展開バージョンを選択する必要があります。最後に、同じテクノロジを使用して異なるバージョンのディストリビューションをインストールできます。
あなたは2つの互換性のない目標を提示します。 1つは最小限のシステムを持つことで、もう1つはすでに持っている64ビットシステムを再現することです。最小限のシステムが必要な場合は、debootstrapのインストールから始めてください。もちろん、chrootで絶対に使用されていないいくつかのパッケージを削除して数メガバイトを節約できますが、依存関係を操作するのに時間がかかる価値はありません(おそらく多くのパッケージを壊す必要があります)。必ずしも必要ではありません。) 既存のインストールを再現するには、以下を使用します。apt-clone
可能であれば(はい)、そうでない場合使用dpkg --get-selections
とapt-mark
。
ホストシステム上のプロジェクトをコンパイルすることは実際には言及されていません。私のプロジェクトをどこかにコピーしたくないように、そうであれば、別の仮想ボックスシステムを設定できます。
schrootによって設定されたchrootにはすでにホームディレクトリがあります。より正確には、/home
バインドマウントはchrootの内側にあります。したがって、プロジェクトが下のどこかにある場合は、/home
chrootですでに使用できます。
別のディレクトリを使用可能にするには、にエントリを追加して/etc/schroot/default/fstab
既存のエントリをコピーします/home
。
/dev /dev none rw,bind 0 0
/dev/pts /dev/pts none rw,bind 0 0
/home /home none rw,bind 0 0
/tmp /tmp none rw,bind 0 0
/scratch /scrath none rw,bind 0 0
それで、実際にchrootシステムを作成し、それを使ってプロジェクトを構築した人がいるかどうかを尋ねたかったのです。
私はいつもこれをする。実際、私が最初にこの記事を書いた理由もまさにそれのためです。