web-dev-qa-db-ja.com

分散ビルドシステム

Ubuntu、Debian、RedHatなどの人気のあるLinuxディストリビューションで現在使用されている分散ビルド用のツールはどれですか?

たとえば、依存関係のあるパッケージが大量にあり、それらすべてをディストリビューションの新しいリリース用にコンパイルしようとしています。一つずつ作るのには時間がかかります。 distccについて聞いたことがありますが、分散並列構築のためにサーバー間で1つのプロジェクトコンパイルを共有しています。

パッケージ間の依存関係を分析し(たとえば、グラフを作成する)、パッケージレベルの並列処理でビルドするためのスケジュールを作成するツールはありますか?たとえば、パッケージp1、p2、p3、p4、および2つのサーバーがあります。相互に依存していない場合、1つのサーバーがp1、別のp2を同時に構築します。

本番環境で使用されているプロジェクトの例が必要です。

1
heylin_n

各ディストリビューションには、このための独自のツールセットがある傾向があり、ここには共有ソフトウェアはあまりありません。

Debianはwanna-buildbuilddおよびsbuildを使用します。これらはすべて文書化されています Debianサイトで (リンクもたどってください)。 wanna-buildはビルドキューを維持し、builddはビルドするパッケージを選択し、sbuildはそれをビルドします。 wanna-buildは、依存関係が欠落しているパッケージを追跡します 「dep-wait」状態 ;パッケージは、直接(wanna-build自体が依存関係が欠落していることを識別できる場合)、または依存関係が欠落しているためにビルドが失敗した後に、その状態に入ることができます。ローカルビルドインフラストラクチャをセットアップする場合は、 チュートリアル を利用できます。

Fedoraは Koji を使用します。これは 詳細に文書化されています です。また、 さまざまなコンポーネントが含まれます 、集中型データベースフロントエンドであるkoji-hub、ビルドを駆動するkojidなどが含まれます。私はKojiにあまり詳しくないので、ビルド状態を処理するためにすべてがどのように統合されているのかわかりません。

他のディストリビューションには、 Launchpad などの他のビルドシステムがあります。これらはすべて、すべてのパッケージの集中ビュー、複数のビルドシステム、およびビルド結果を受信する集中リポジトリという、同じ懸念事項を処理します。

2
Stephen Kitt