第4回 ユーもオープンソースにジョインしちゃいなよ!新入学生/新社会人応援企画第2弾(2/2 ページ)

» 2007年03月09日 07時00分 公開
[ITmedia]
前のページへ 1|2       

オープンソース開発を支援するサービス

 ソフトウェアの開発そのものは、エディタとコンパイラ、実行環境さえあれば始められるが、前述のようにソースコードはバージョン管理システムで管理した方が良い。また、複数の開発者がソースコードにアクセスすることを考えると、インターネットのサーバ上にバージョン管理システムを用意するのが望ましい。

 そのほか、Web上にホームページを作成し、バグ報告用にMLも起ち上げる必要があるだろう。バグトラッキングシステムは必ずしも必要ではないが、最新情報やFAQなど、情報を一元管理できるようWikiシステムなどを起ち上げておくと良い。こういった要件を考えると、開発用のサーバが必須だといえる。しかも、バージョン管理システムやMLなど、比較的自由度の高い運用ができなければならず、安価なレンタルサーバは使えない。

 自宅サーバやホスティングを利用することになるが、セキュリティの問題もあって本格的な環境を構築・運営するのは案外大変なのが実状だ。幸いにして、これらの開発環境を提供しているのが、SourceForgeというWebサイトである。オープンソースソフトウェアの開発に限って無償で利用できるサービスだ。国際的なプロジェクトにしたい場合はSourceForge.net、日本語圏のコミュニティーで開発するならば、SourceForge.jpを使えば良い。

 SourceForgeで提供している機能は表2のようになる。便利な機能がそろっているのでぜひ活用されたい。

表2 表2 SourceForgeで提供している機能

開発プロジェクトの実際例

 多くのソフトウェア開発プロジェクトはかなり小規模で運営されているが、中には数千人規模で運営されているものもある。Brooksの法則*によれば、開発者の人数が増えても、開発者間のコミュニケーションコストが増えるなどして、効率は上がらないという。では、世界規模で開発を行っているプロジェクトでは、どうやってプロジェクトを運営しているのだろうか。ここでは、LinuxカーネルとDebian GNU/Linux*を例に、プロジェクト運営の実際例を見てみよう。

Linuxカーネルの場合

 例えばLinuxカーネルの開発は、リーナス・トーバルズを頂点とし、機能ごとにサブリーダーをかかえるピラミッド構造になっている。Linuxカーネルに機能を追加してもらいたい場合、まずはサブリーダーを説得する必要がある。開発についての議論はLKMLと呼ばれるMLで行われているので、パッチをMLに投稿してサブリーダーや関心のある開発者と議論を行うことが基本となる。

 Linuxカーネルの開発においては、リーナス・トーバルズやアラン・コックスなど一部のカリスマ開発者が非常に強い権力を持っている。彼らはそれぞれソースコードのツリーを持ち、そこで試してもらえるかどうかがパッチ作成者の努力の行方を握っているのだ。一種独裁とも言える体制だが、この仕組みで不思議とうまくいっているのは、MLにおいて徹底的に議論していることにあるようだ。

 どんなに優れた機能でも、ソースコードをいきなり投げ入れただけでは採用されない。それがどのような機能を提供し、どういったメリットをもたらすのか、また、実装に問題はないのかを話し合った上で採用の可否が決められる。成果物だけでなく、作る過程やコンセンサースが重視されるのだ。

Debian GNU/Linuxの場合

 Debian GNU/Linuxの場合は、アプリケーションパッケージごとに、それぞれメンテナンス担当者が決まっている。中でも、http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=wnppにリストアップされているうち(図1)、「O:」または「RFA:」がつけられているパッケージは、バグを含みながらもorphan(「O:」の付いているもの。メンテナ不在)、RFA(Request For Adoptation、引き取り手募集)の状態になっている。

図1 図1 バグの解決待ちパッケージ一覧のページより。「O:」や「RFA:」が付けられているパッケージが確認できる

 この中に興味のあるパッケージを見つけた場合は、バグを修正してから開発者に連絡を取ると良い。バグの修正は、自分にメンテナを勤めるだけの実力と意欲があることを示すためにも重要だ。ただし、Debianのアーカイブに直接パッケージをアップロードするには、アカウントが必要なのですぐにはできない。この段階では、自分の代わりにアップロードしてくれる「スポンサー」と呼ばれる協力者を見つける必要がある(具体形には、debian-mentors@lists.debian.orgにメンテナを探している旨投稿する)。

 このようにパッケージを更新し協力者を得るという実績を積んだ後、New Mainter(新規メンテナ)プロセスと呼ばれる選考に通ってやっとアカウントがもらえる仕組みだ。非常に複雑な仕組みでメンテナを選抜しているが、逆に言えばその厳格さこそがDebian GNU/Linuxの信頼性を高めているのだろう。

イベントに参加しよう!

 OSS開発にたずさわるメリットの1つとして、コミュニティーでの情報交換が挙げられる。最近のシステムは、オープンシステムの流れを受けて、標準的な技術要素の組み合わせでできている。そのため、標準技術や動向を知らなければ開発できない。OSS開発では、多様なコミュニティーによって業界横断的なイベントも多数行われているため、情報のアンテナとして有効だ。次回は、技術系の勉強会、会合を主宰されているお二人にインタビューし、コミュニティー活動の魅力を聞く。

このページで出てきた専門用語

Brooksの法則

『人月の神話』(ISBN4-89471-665-8)という古典的名著で指摘された法則。

Debian GNU/Linux

Linuxディストリビューションの1つ。純粋に「フリー」なOS環境を構築するべく、厳格なルールを適用してディストリビューションパッケージを構成している。


本記事は、オープンソースマガジン2005年12月号「オープンソースで行こう!」を再構成したものです。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ