![](https://habrastorage.org/storage3/816/f6a/f02/816f6af021ec3005c7166603a93d9c41.png)
Habrの皆さん、こんにちは。 あるプロジェクトについての私の気持ちを共有し、良い手に引き渡したいと思います。
CentOS向けのRPMパッケージを数年間構築し 、公開CentALTパッケージリポジトリを保守していたので 、私は常に同じ問題に直面していました。 多くのユーザーは、相互に排他的なオプションを持つパッケージをアセンブリに含めるように要求しましたが、引数は異なる可能性がありますが、事実がありました。
このトピックについて議論すると、同じリポジトリ内でそれを解決することは不可能であるという結論に達しました。 各ユーザーには、アセンブリオプションを個別に選択し、出力時に、必要なオプションとモジュールを備えた既製のRPMパッケージを取得する機会を与える必要があります。
このトピックについてWendor 同志と話し合った結果、このプロジェクトは人々に需要があり有用であると考えました。 アイデアを検討し、技術的な部分を見積もった後、「G ... oh question」という言葉で作業を開始しました。 正直に言うと、 ウェンダーは仕事に取り掛かり 、私は彼に「貴重な」アドバイスを与え続けました。
私たちは、プロジェクトに非常に単純な哲学、「独自のリポジトリを構築する」を入れました。 ユーザーは、必要なモジュールを使用して必要なパッケージを選択し、出力で使用可能なリポジトリへのリンクを取得できます。 パッケージを更新すると、すべてのユーザーリポジトリに対してパッケージが自動的に再構築されます。 計画では、パッケージ内の自分の構成を洗浄する機能を追加する予定でした。 リポジトリからサーバーパークを直接更新することがどれほど便利であるかを熱心に想像しました。
2日後、このサービスはAntonによって作成されました(Antonも管理者ですが、彼は少しコーディングしています)。 まず、nginxパッケージをビルドし、その上でシステム全体をデバッグしてから、他のパッケージの追加を開始することにしました。 Nginx SRPMSパッケージを修正した後、アセンブリ中に選択できるオプションをデータベースに追加しました。 Voila-サービスは機能しましたが、途中で必要なビルドオプションを備えた適切なOS(CentOS5 / CentOS 6)用のRPMパッケージを入手しました。 Nginx用の約50のサードパーティモジュールをオプションリストにリストし、95%のケースでアセンブリが成功しました。 残りの5%は、「httpサポートを無効にする」や「gzipサポート」などの互換性のないオプションを選択した場合です。 Nginxのすべての種類のフォークと改良がシステムに導入され、次のパッケージをビルドできるようになりました。
- Nginx
- Nginx-stable
- Tengine(TaoBao Nginx fork https://github.com/alibaba/tengine )
- OpenResty( http://openresty.org/ )
アセンブリを試してみた後、私たちはむき出しの熱意と一緒にそのようなプロジェクトをドラッグして開発することはできないことに気付きました。 このプロジェクトは、「より良い時代になるまで」数ヶ月間放棄されました。 時間が経ちましたが、物事はまだそこにあります。
最終的に、私たちはプロジェクトをもうできないと決めました。 今日、私たちはすべてのプロジェクトの成果を善意で提供することにしました。
このイニシアチブをサポートしたい人がいれば、アセンブリシステム全体をゼロから展開し、すべてのソースコードを転送する方法を喜んで説明し、示します。
収益化。 興味のある読者は、「Zinのお金はどこですか? (c)。 " シンプルで透過的なサービス収益化スキームが見られます:
- リポジトリの5つのパッケージに無料アカウントの制限を設けます。
- 有料アカウントでは、Nginxの乗客など、まれではあるが必要なモジュールでビルドする機能を追加します。
- 無料アカウントへの更新を制限できます。
作業サービスhttp://repobuild.com/にリンクします。
登録したくない人のために:
ユーザー名:ユーザー
パスワード:ユーザー
リポジトリの作成、パッケージの追加、選択したパッケージを構築するためのオプションの選択
![](https://habrastorage.org/storage3/fd5/d64/40d/fd5d6440debe5fcca270663d09d32b2f.png)
![](https://habrastorage.org/storage3/d4d/32e/b71/d4d32eb71e0c6850425bf2475a6263c6.png)
パッケージが収集され、リポジトリへのリンクを取得するのを待っています
![](https://habrastorage.org/storage3/29a/581/555/29a58155509fb662289ad8bd70bb976f.png)
アセンブリが失敗した場合は、混乱したオプションのどこを探します(残念ながら、相互に排他的なオプションがすべてリストされているわけではありません)。
そのようなもの。 あなたが私たちのビジネスを継続したい場合、私たちはあなたに応答するようお願いします。