
現在広く使用されているLinuxディストリビューション(Ubuntu、Debian、RedHatなど)では、どの分散ビルドツールが使用されていますか?
たとえば、依存関係のある多数のパッケージがあり、新しいバージョンのディストリビューション用にすべてのパッケージをコンパイルしようとしています。一つずつ構築するには時間がかかります。 distccについて聞いたことがありますが、分散並列ビルドのためにサーバー間でプロジェクトのコンパイルを共有します。
パッケージ間の依存関係を分析(グラフ生成など)し、パッケージレベルの並列処理を使用して構築されたスケジュールを生成するツールはありますか?たとえば、パッケージp1、p2、p3、p4、および2つのサーバーがあります。互いに依存しない場合、あるサーバーはp1と他のp2を同時に構築します。
プロダクションに使用されるプロジェクトの例が必要です。
答え1
各ディストリビューションには独自のツールセットがある傾向があり、これには多くのシェアウェアはありません。
Debian は を使用し、wanna-build
すべて文書化されていることがわかりますbuildd
。sbuild
Debianのウェブサイトから(リンクもクリックしてください。)wanna-build
ビルドキューを維持し、buildd
ビルドするパッケージを選択してsbuild
ビルドします。wanna-build
依存関係がないパッケージを追跡するには、次のコマンドを使用します。「待機」ステータス;パッケージは直接この状態に入ることができます(wanna-build
それ自体が欠落している依存関係を認識している場合)。または、欠落している依存関係のためにビルドが失敗した後に可能です。一つある地図時間ローカルビルドインフラストラクチャを設定する場合に使用できます。
Fedoraが使用するコージー今すぐ広く文書化。それもさまざまなコンポーネントが含まれています。、koji-hub
集中型データベースのフロントエンドとkojid
ドライバベースのデータベースが含まれています。私はKojiについてよく知らないので、ビルドの状態を処理するためにKojiがどのように統合されているかわかりません。
他のディストリビューションには、次のような他のビルドシステムがあります。発射台。すべてのパッケージの集中型ビュー、複数のビルドシステム、ビルド結果を受け取るための中央リポジトリなど、すべてあなたが興味を持っているのと同じ問題に対処します。