前提条件
依存関係
rust-lang/rust の INSTALL を参照してください。
ハードウェア
ビルドするにはインターネット接続が必要です。 ブートストラップ処理では、 git サブモジュールの更新とベータコンパイラのダウンロードを行います。 非常に高速である必要はありませんが、高速であれば役に立ちます。
厳密なハードウェア要件はありませんが、コンパイラのビルドは 計算負荷が高いため、より高性能なマシンのほうが役に立ちます。また、 Raspberry Pi でビルドしようとすることはお勧めしません! 以下を推奨します。
- 30GB 以上の空きディスク容量。 そうでない場合は、インクリメンタルキャッシュを継続的に削除する必要があります。 容量は多いほどよいです。コンパイラは少々 容量を消費しがちです。これは私たちも認識している問題です。
- 8GB 以上の RAM
- 2 コア以上。 コア数が多いと非常に役に立ちます。 10 個、20 個、あるいはそれ以上でも多すぎることはありません!
より高性能なマシンでは、ビルドがはるかに速くなります。
マシンの性能があまり高くない場合、
よく使われる戦略は、ローカルマシンでは ./x check のみを使い、
PR ブランチにプッシュしたときに CI ビルドで変更をテストさせることです。
そこそこ高性能なノート PC でも、コンパイラのビルドには 30 分以上かかります。 LLVM をソースからビルドしなくて済むように、 CI からダウンロードすることをお勧めします (こちらを参照)。
cargo と同様に、ビルドシステムは可能な限り多くのコアを使用します。
これにより、メモリ不足になることがあります。
-j を使用して、同時実行ジョブ数を調整できます。
フルビルドに約 45 分から 1 時間を超える時間がかかる場合、
おそらくほとんどの時間をメモリのスワップイン・スワップアウトに費やしています。
-j1 を試してください。
空きディスク容量があまり多くない場合は、 インクリメンタルコンパイルを無効にしたいかもしれません(こちらを参照)。 これによりコンパイルに 時間がかかるようになります(特にリベース後)が、 インクリメンタルキャッシュによる大量の容量消費を抑えられます。