Debian

概要

Linuxカーネル、必須なユーティリティ類のutil-linux（en:Util-linux）、プログラムのビルドに必要なGCCやGNU Binutils、coreutilsなどのその他のUnix系ユーティリティをはじめ、その他デスクトップ環境向けやサーバ運用向けなど多数の、計51,000以上のパッケージを提供している。ターゲットアーキテクチャとして現在10のアーキテクチャ向けにリリースされており、インテルやAMDの32ビット・64ビットプロセッサ、組み込み機器で使われるARMアーキテクチャなどがそれには含まれている。低水準のパッケージ管理システムはdpkg、高水準のパッケージ管理システムはAPTである。デスクトップ環境は各種のものがパッケージにあるが、Debian 8ではインストール時に選べるのはGNOME、Xfce、KDE、Cinnamon、MATE、LXDE、LXQtである。
その他の特徴として、Debianをベースとして、さらにカスタマイズを加えた派生Linuxディストリビューションの作成が考慮されている、という点があり、Ubuntu他多くの派生ディストリビューションが存在する。
インストーラ用のCD/DVDイメージはWebからのダウンロード、BitTorrent・jigdo・uNetBootInなどで取得でき、またインストールメディアをオンライン再販業者から購入する事も可能である。

1993年〜1998年

Debianは1993年8月16日に当時パデュー大学の学生であったイアン・マードックにより創設された。 マードックは当初"Debian Linux Release"という名称を付けた。当時"Softlanding Linux System (SLS)"という初のGNU/Linuxディストリビューションが公開されていたが、SLSは保守がお粗末であったり不具合が頻発したためマードックは全く新しいディストリビューションを立ち上げた。
1993年、マードックは"Debianマニフェスト"というこの新しいオペレーティングシステムについての概要を公表した。その中で、このディストリビューションのメンテナンスは、LinuxおよびGNUの精神に基づき公開された手法で維持されることを求めた。彼はこのディストリビューションの名称を、ガールフレンドの名前Debra Lynnと自身の名前IanからDebianとした。
Debianプロジェクトからは、1994年から1995年にかけて0.9バージョンのシリーズが初めて公開された。この期間、フリーソフトウェア財団のGNUプロジェクトが支援を行った。1995年には、インテルi386以外のアーキテクチャーに対してもサポートが開始されることとなり、1996年に最初のパブリックリリースとなった1.xが公開された。
1996年にはブルース・ペレンズがDebianプロジェクトのリーダーとしてマードックの後任に就いた。同年開発者のEan Schuesslerは、Debianプロジェクトがその利用者に対して社会的な契約を交わすべきであるとの提案を行った。これに関してDebianプロジェクトのメーリングリストで行われた議論は、プロジェクトについての「Debian社会契約」と「Debianフリーソフトウェアガイドライン (DFSG)」にまとめられた。ペレンズは、Software in the Public Interest (SPI) というDebianプロジェクトを公式に支え、プロジェクトを統括する非営利組織の創設にも関わった。
ペレンズは、glibc移行後初めてのリリースとなったDebian 2.0が公開される直前にDebianプロジェクトを引退した。

1999年〜2004年

この時期、Debianプロジェクトは新たなリーダーを選出し、2.x リリースを公開した。この時期にAPTが初めて導入され、Debian GNU/HurdというLinuxカーネル以外の開発も始められた。1999年にはDebianをベースとするディストリビューションも現れ始めた。Libranet (2006年に開発停止)、Corel Linux そして StormixによるStorm Linuxである。
特筆すべきは、2000年に公開された2.2リリース（コードネーム: potato）で、このリリースはlibc等重要なパッケージのメンテナで、デュシェンヌ型筋ジストロフィーのため亡くなった、Joel 'Espy' Kleckerに捧げられた。
2000年後半には、プロジェクトはパッケージアーカイブとリリースマネージメントに関する大きな変革を行い、「パッケージプール」方式と次期stableリリースの土台となるリリース"testing"の導入が開始された。また同年には全世界のDebian開発者・技術者を集めて年1回開催されるDebConf（Debianカンファレンス）が開かれるようになった。
この頃CorelはLinux部門を売却 (後にXandrosとなっている) 、Stormixは2001年破産を宣告されている。
2002年7月、Debian 3.0 （コードネーム: woody）が公開された。（遡ることバージョン1.1から、Debianはリリースの際に映画トイ・ストーリーのキャラクター名をコードネームとして採用し現在に至る。）
3.0(woody)リリース後、次期リリース3.1(sarge)まで、およそ3年という長期に渡る空白期間が存在する。主な理由として、potatoからwoody以後にかけて、パッケージ数が2倍程に増加、またwoodyでのサポートアーキテクチャも増加したため、リリース直後からこれに伴うバグが飛躍的に増大した点がある。とりわけリリースクリティカルバグが事実上すべて解消されない限りリリースできないため、リリーススケジュールに多大なる影響を与えた。パッケージメンテナのバグに対する考え方は温度差があり、たとえば特定の言語のみ発生するバグならば、そのメンテナがバグ対象の言語圏でも無い限りバグを修正することに対する意欲を持つことは少ない。コミュニティによるボランティアを作業ベースとするDebian特有の問題とも言える。
しかし、長くなっていくリリースサイクルについて、フリーソフトウェアコミュニティから非難されることとなり、影響力の大きいUbuntuが派生する契機となった。
Debianのstableリリースの長期化と派生であるUbuntuの誕生は、Debianコミュニティに対する意識を変化させ、Debian 4.0(コードネーム: etch)以降のリリースに対してのリリーススケジュールを含むいくつかの改善をもたらしたのは確かである。2011年現在では両コミュニティにおいて、バグ修正の取扱いなど相互交流もある。

2005年以降

2005年6月、Debian 3.1（コードネーム: sarge）が公開された。メジャーリリースではない（バージョン番号が小数部の増加に留まる）にも関わらず、この正式版では数多くの変更が実施されたが、それは一つ前のリリースwoodyからsarge公開までの期間が長かったことが原因である。このリリースでは70％以上のソフトウェアがアップデートの対象となっただけではなく、ソフトウェアの容量も増加した。新規のインストーラーが導入され、40ヶ国語にも及ぶ言語がサポートされるようになった。
このリリースでは、woody以前のインストーラである、"boot-floppies"をモジュラー設計の新しいインストーラで置き換えた(Debianインストーラ)。 この新しいインストーラは高度なインストール方法をサポートしており、RAID、XFS そしてLVMがサポートされている。またハードウェア検知能力に優れ、Linuxのインストールに不慣れな者でもインストールできるようになっている。インストーラは約40ヶ国の言語で完全なソフトウェアレベルでの国際化を実現している。インストールマニュアルと包括的なリリースノートはそれぞれ10と15の言語に翻訳されリリースされている。
このリリースでは、Debianプロジェクトの各サブプロジェクトの取り組みも含まれており、Debian-Edu (Skolelinux)、Debian-Med、Debian-Accessibilityがそれに当たる。Skolelinuxは学校教育において有用なソフトウェアのパッケージを作成しDebianアーカイブに収録、また教育現場へのDebianの利用促進を行うプロジェクトである。Debian-Medは医療現場におけるDebianの利用促進や医療用ソフトウェアの作成、パッケージ化を担っている。Debian-AccessibilityはDebianシステムやDebianプロジェクトのWebサイトのアクセシビリティ向上や障害者に対するDebianの利用をサポートするプロジェクトで、その一部は視覚障害者のためのブライユ端末上におけるインストールサポートなどがある。
2006年、ウェブブラウザやメーラーといった Mozilla関連のソフトウェア名が商標上の問題によって変更された。Firefox は、Iceweasel へ、Thunderbird は Icedove へといったように変わった。これはMozilla Foundationの要請によりDebianプロジェクトでMozilla Firefoxの名称が使えなくなったことによる。
2007年4月8日、Debian 4.0（コードネーム: etch）が公開された。GUIインストールが公式にサポートされている。このリリースでは新たにAMD64がサポートされた一方、Debian初のx86以外のアーキテクチャであったm68kは公式にサポートされなくなった（但し非公式なサポートは存在する）。
2009年2月14日、Debian 5.0（コードネーム: lenny）が公開された。開発期間は22ヶ月。25000以上のソフトウェア・パッケージが収録された。新たにマーベル・テクノロジー・グループが販売しているARMベースのNAS、OrionプラットフォームとAsus Eee PCのようなネットブックがサポートされた。このリリースはMIPSアーキテクチャメンテナで2008年12月26日に交通事故で亡くなったThiemo Seuferに捧げられた。
2010年9月5日、公式にバックポートサービス (Debian Backport) を開始した。
5.0リリースからほぼ2年経った2011年2月6日、Debian 6.0（コードネーム: squeeze）が公開された。FreeBSDカーネル（Debian GNU/kFreeBSD）が「テクノロジープレビュー」としてこのバージョンから正式にサポートされたが、その一方でalphaとhppa、armの3つのアーキテクチャーがこのバージョンから公式にサポートされなくなった。
6.0リリースから2年以上経過した2013年5月4日、Debian 7.0（コードネーム: wheezy）が公開された。このバージョンからarmhfとs390xの２つのアーキテクチャが正式にサポートされることとなった。
2014年4月24日、Debian 6.0のサポートが2016年2月まで延長されることが発表され、2014年6月16日より長期サポート(LTS)期間に入った。
2015年4月25日、Debian 8.0（コードネーム: jessie）が公開された。このバージョンよりAArch64（64ビット版ARMアーキテクチャ）とPOWER 64 ビットリトルエンディアン版が正式にサポートされた。またs390 アーキテクチャのサポートが終了し、s390xに置き換えられた。なお、ia64 および sparc が、開発者不足から、正式リリースに含まれなくなった。
2017年6月17日、Debian 9.0（コードネーム: stretch）が公開された。このバージョンより64 ビットリトルエンディアン MIPSがサポートに追加された。逆にPowerPC（の32ビット版）がサポートから外れた（PowerPC 64ビット版は引き続きサポートが継続される）。
2019年7月6日、Debian 10.0（コードネーム: buster）が公開された。

プロジェクトの組織構成

プロジェクトは、世界中の有志の開発者によって構成されている。プロジェクトには誰でも参加できるが、正規の開発者になるためには、技術的なチェックを受ける必要がある。現在、1000名以上のメンバーがいる。日本人の開発者は40人ほどである。
プロジェクトの抱負として、Debian社会契約を掲げている。Debian社会契約は、プロジェクトが遵守すべき事項を定めたもので、1997年7月5日に採択された。その中のDebianフリーソフトウェアガイドライン (DFSG) は、Debianにおけるソフトウェア評価基準となっており、このガイドラインに適合しない、フリーではないと評価されたソフトウェアは、Debianの一部として提供されることはない。
プロジェクト内の意思決定はDebian憲章の元で行なわれる。Debian憲章は、組織構成やその権限、投票にかけるまでの手続きなどを定めたもので、1998年12月2日に採択された。
このことから、Debianプロジェクトは独立した非中央集権的な組織である。また他のGNU/Linuxディストリビューション（例えば、Ubuntu、openSUSE、Fedora、そしてMandriva）のように企業が所有するものではない。 にも関わらず、プロジェクトの生産付加価値は極めて高く、Debian 4.0 (etch)リリースに含まれる全パッケージ開発コストを例にとると、コード総数2億8300万行、COCOMOモデル(en:COCOMO)を使用した生産価値評価は130億米ドルにのぼるとされる。2009年4月2日、オンラインコミュニティサイトOhlohはある時点でのDebian GNU/Linuxプロジェクトのコードベース（コード総数4500万行）をCOCOMOモデルを用いて評価したところ、開発コストは約8億1900万米ドルになると推計した。Debian 5.0 (lenny) リリースに関して、Juan José Amorらの推計によると、有効なコード総数は324,000,000行、COCOMOモデルによる生産価値評価は61億ユーロにのぼるとされる。
無論こうしたDebianに関するコミュニティの門戸の広さは、全く問題がないわけではなく、以前には、「一部ユーザによる礼儀知らずな行為」とコミュニティの意思決定の遅さが批判されたことがある。
毎年、Debianカンファレンス (通称DebConf) が開催される。Debianカンファレンスは、世界中のDebian開発者が直接会談する場で、2000年7月5日に初めて開催された。資金面などの多くの障害があるため、今のところ日本で開催されたことはないが、有志によって開催が検討されている。
詳細はDebConfを参照。

APT

Debianの特長として、メンテナンスの単純さがある。パッケージ管理システムを備えており、ひとたびインストールが終了すれば、パッケージマネージャのAPT (Advanced Package Tool) により、ソフトウェアの更新が行える。パッケージのインストールは、セキュリティ関連の更新やプログラム相互の依存性確認も含めて、仮想端末（コンソール）より容易に操作できる。
パッケージの依存関係には、大きく分けて、depends（依存）、recommends（推奨）、suggests（提案） という3種類の項目が設定されており、動作に必須なものがdepends、動作に必須ではないが常識的に必要とするものがrecommends、組み合わせる事で更に便利に使えるものがsuggestsに指定されている。しかしapt-getでは、depends以外の項目を上手に扱えなかったため、これらの項目を最大限生かす事ができるaptitudeの使用がSarge以降では勧められていたが、Squeezeではこの点は改善された。さらに、自動削除をサポートするようにも更新された。
APTには補助的機能を追加するフロントエンドが数多く提供されており、以下ではaptitudeを含めた幾つかのフロントエンドを紹介する。

GUIフロントエンド

ユーザーフレンドリーなユーザーインターフェイスは複数存在する。
一般的に良く知られる代表としては、Debianだけでなく RPM系のディストリビューションでも使われている Synaptic（シナプティック）がある。Synapticは、apt-getコマンドを使用せずにシステムの更新が全てマウスで直感的に行えるだけでなく、ソフトウェアの削除機能も備えている。
「apt-watch（アプト-ウォッチ）」は、デスクトップで使用するユーザーにとって、アップデートのリリースを直ちに通知してくれるアプレットとして極めて有効なツールである。apt-watch は、より簡易にパッケージの管理を実現するツールとして開発されたアプリケーションである。これは、ネットワークに接続し、アップデータを定期的に監視するアプレットであり、アップデータが利用可能となった時には、クライアントに自動的に更新の通知を行う。Windows Updatesや Red Hat Network と同様な機能を持っている。
4.0 (Etch) では、apt-watch に加えて新たに update-manager も用意された。これは、GNOMEデスクトップ環境で利用可能なパッケージの管理ツールである。この update-manager は、Update Notifier と呼ばれるデスクトップ上のアプレットと組み合わせて利用することができる。機能的には apt-watch と似ているが、APT keyring を管理する仕組みが追加されている。なお、Update Notifier は GNOME や KDE、Xfce など Freedesktop.org 準拠の全てのデスクトップ環境で動作するように設計されている。
ただしこれらもアップデートの実際の内部処理は、APT が機能しているので、apt-get コマンドを実行することと大差は無い。

gdebi

Debian 4.0 では、グラフィカルなパッケージ・インストーラーが新たに提供された。このインストーラーを利用すれば、ローカルに保存した Debianパッケージがコマンド操作なしでインストール可能である。Red Hat Linux で初めて採用された Gnome-RPM (あるいは gnorpm とも) というグラフィカルなインストーラーと好対照を成すツールであるが、Gnome-RPM がシェルプロンプトから RPMコマンドを実行するのと同じ機能を有するのに留まるのとは違い、gdebi は APTのようにパッケージ間の依存関係を自動的に解決する機能も併せ持っている点でより優れている。GDebi とも表記される。

debconf

パッケージ管理にはdebconfと呼ばれるフレームワークが用意されており、パッケージ作成者はユーザーに対して簡易のフロントエンドを提供できる。このフレームワークを積極的に利用しているパッケージでは、インストール後にユーザーが行うであろう初期設定の大半を、対話形式の質問に答えていくだけで、インストールと同時に終える事ができる。debconfパッケージ自身もdebconfの設定を有しており、利用するフロントエンドインターフェースと優先度を設定できる。debconfのインターフェースは、対話形式のものから、非対話形式（質問なしで自動設定）なもの、キャラクタベースなものから、グラフィカルなもの、または設定ファイルを直接書き換える用途で使用するエディタまで、ユーザーが自由に選択可能である。優先度はパッケージの各質問毎に設定されており、ユーザが介在しないとシステムが動作しなくなる高レベルのものから、デフォルトで問題ないような些細なものまである。（システムに不慣れなユーザのため）ある優先度より低い設定をすべてデフォルトで済ませ、それらを一切質問させないことも可能である。