バックポートの利用法:安定版ディストリビューション上で新規パッケージを実行する

安定性を最優先したシステムの運用を続けていると、アプリケーションの最新版がリリースされたのに対応性の問題から使用できない、というケースにしばしば遭遇する。だが、そこでくじけてはいけない。新規リリースされたパッケージを既存の旧版ディストリビューション用に“バックポート”(backport)し直した、いわゆるバックポート版を用いれば活路が開けることもあるからだ。

バックポートとは、新規リリースされたソフトウェア(たいていはベータ版ないし開発リリース段階のもの)を既存の旧版ディストリビューションで使えるように古いライブラリを使ってコンパイルし直したものである。つまり最新版ソフトウェア用にアップグレードされていない“安定”システムであっても、こうしたバックポート版ならば実行できるかもしれないのだ。お気に入りのソフトウェアの最新バージョンがリリースされたが、対応性の問題から手元のシステムでは使用できないといった場合、こうしたバックポート版の使用を検討してみるのも1つの手であろう。

UbuntuディストリビューションのBackports Projectリーダを務めるJohn Dong氏の説明によると、同プロジェクトにおけるバックポート作業は、基本的に旧バージョン環境下での再コンパイルしたものを提供するだけであり、通常手順でのコンパイルが可能な状態にパッケージを改変することはあまり行いたくないとのことである。「ただし何らかの理由がある場合は(深刻なバグフィックスなど)、手作業でパッケージを修正したり、他のUbuntu開発者と連携して開発ツリーに特定バージョンをアップロードして以前のUbuntuリリースに対するバックポートを行い易くすることもあります」

こうしたバックポートできるパッケージに制限はないはずだが、実際問題としては比較的需要の高いユーザレベルのアプリケーションに対してのみ施されることが多く、具体的には、Firefox、OpenOffice.org、その他のメジャーな大型パッケージおよび、マルチメディア系アプリケーションやメディア系プレーヤなどが該当する。

本来こうしたバックポートは、バージョン的な齟齬を解消するのではなく、セキュリティ上の目的で作られてきたという経緯がある。新規アプリケーションのリリース時に重要なセキュリティアップデートが伴っている場合、そうしたセキュリティアップデートが既存バージョンにも適用すべきものであれば、旧バージョン群でも適用可能にするためベンダが新規リリースの“バックポート”版を作成するという具合だ。実際、Red HatおよびSUSEなどの主要ディストリビューションは、各自のパッケージにおけるセキュリティ用バックポートを定期的に公開している。

とは言うものの、こうしたバックポートの用途はセキュリティやバグフィックスにのみ限られる訳ではなく、旧式化した安定版のディストリビューションを維持したまま新機能が装備された最新版アプリケーションを使いたい、という場合に利用することもできるのだ。

DebianおよびUbuntuディストリビューションでは、バックポート版ソフトウェアがアーカイブ化されており、ユーザはごく簡単な手順を踏むだけで必要なバックポートを使用できるようになっている。

Debianにおけるバックポートの使用法

Debianシステムの場合、何百個ものバックポート版パッケージがDebian Backportsとしてbackports.orgに用意されている。実際に利用する前にどのようなパッケージがオンライン上で公開されているかを確認したければ、同サイトのディレクトリを調べればいいだろう。その他にもバックポートアーカイブの最新追加情報を紹介したページや、機能比較の一覧を掲載したページも用意されており、現行の安定バージョンであるDebian Sargeリリースでどのバックポートが使用できるか、あるいは次にリリースされるDebian Etch版のものと何が違うかを簡単に確認できるようになっている。

なおDebian Backportsプロジェクトでは、複数のメーリングリストを用いた新規アナウンスおよびサポート活動が行われている。

Debianのバックポートを使用するには、まず最初に/etc/apt/sources.listファイルを編集して(root権限が必要)、当該ディストリビューション用のバックポート版パッケージのソースを1ないし複数個指定しておく必要がある。例えば、SargeシステムからDebian Backportsのメインアーカイブにアクセスするのであれば下記の行を追加すればいい。

deb http://www.backports.org/debian sarge-backports main contrib non-free

次に必要なのは、利用可能なパッケージのリストをアップデートすることだが、それはapt-get updateというコマンドで行える。

パッケージリストの更新後、aptitudedselectなどのパッケージ管理用フロントエンドを用いて対応パッケージを一覧させると、現状で使用可能なバックポートが表示されるはずだ。なお慣例により、Debianのバックポート版パッケージについてはバージョン番号に「~bpo」という文字列が追加されている。

バックポート版パッケージの選択およびインストールをする場合、あるいはコマンドラインでのapt-get使用時に-tオプションを指定すると、ターゲットとするリリースを「sarge-backports」のみに制限することができる(異なるバックポートアーカイブを利用したい場合は、当然その他の指定も可能)。例えば、Firefoxの最新バージョンをインストールするためのバックポートが必要であれば、下記のように指定すればいい。

apt-get -t sarge-backports install firefox

なおDebian用のバックポート版パッケージの入手先は、Debian Backportsプロジェクトだけに限られている訳ではない。ソフトウェアの特定リリースに対するバックポート作成と公開は誰でも行えるからだ。例えばapt-get.orgにアクセスすれば、独自作成されたバックポートの配布サイトに関する膨大なリストを入手することができる。

Ubuntuにおけるバックポートの使用法

対するUbuntuも負けてはいない。こちらのディストリビューションではオフィシャルなバックポートリポジトリが整備されているのはもとより、バックポートのリクエストに関する処理が自動化されているのだ。

Ubuntuディストリビューションのバックポートは様々なバージョンの対応版が存在してはいるが、Dong氏の説明によると、主要なバックポート作業の対象となっているのはDapperおよびEdgyの2つのバージョンに限られるとのことである。「オフィシャルなバックポートの提供が始まったのはHoary以降で、その後のリリースについては最新の安定版までがカバーされています」とDong氏は語る。「ただしバックポートの作成はユーザからの要請に応じて行うという態勢を取っているため、新規リリースが行われるにつれて旧バージョンに対する需要は先細りになる傾向が見られます」

Ubuntuにおけるバックポートの取得法はDebianの場合と大差なく、まずはroot権限を取得してから/etc/apt/sources.listファイルを開き、使用するUbuntuディストリビューションに応じたバックポートリポジトリの指定行を追加すればいい。

  • Feisty Fawn(7.04)の場合:

    deb http://archive.ubuntu.com/ubuntu feisty-backports main restricted universe multiverse

  • Edgy Eft(6.10)の場合:

    deb http://archive.ubuntu.com/ubuntu edgy-backports main restricted universe multiverse

  • Dapper Drake(6.06 LTS)の場合:

    deb http://archive.ubuntu.com/ubuntu dapper-backports main restricted universe multiverse

  • Breezy Badger(5.10)の場合:

    deb http://archive.ubuntu.com/ubuntu breezy-backports main restricted universe multiverse

  • Hoary Hedgehog(5.04)の場合:

    deb http://archive.ubuntu.com/ubuntu hoary-backports main restricted universe multiverse

  • Warty Warthog(4.10)の場合:

    deb http://archive.ubuntu.com/ubuntu warty-backports main restricted universe multiverse

次にapt-get updateを用いてパッケージリストをアップデートさせると、パッケージ管理プログラムにおける対応パッケージの一覧中に使用可能なバックポートが表示されるはずである。

Ubuntuのバックポートについては使用法に関する詳細なドキュメントが用意されており、またユーザフォーラムでのサポートも行われている。

注意事項

利用可能なバックポートが新規に登場するごとに、次から次へと追加インストールしたくなるのが人情というものだろう。だがそうした行為はお勧めできない。システム全体をバックポートだけで賄うのは不可能であり、それ以前にそうしたシステムが欲しいと思うユーザもいないだろう。バックポート版アプリケーションとは本質的に“不安定”さを残したものであり、バックポートを追加すればするほど“安定版”ディストリビューションの安定性は失われていくし、最新版の不安定なソフトウェアを実行しようとすれば予測不可能なバグやエラーを引き込む可能性も高くなるからだ。そもそも、すべてのコンポーネントを最新版の開発リリースで統一したいというのであれば、“安定版”ディストリビューションに固執する意味そのものが失われるはずであり、最初からディストリビューション全体を“不安定”な最新版リリースにアップグレードすれば済む話なのである。

ところで、利用するバックポートのオリジナル版アプリケーションにおいて重要なセキュリティアップデートが施されている場合、そうしたセキュリティアップデートはバックポート版パッケージにも適用するのが好ましいはずだ。だがそうしたアップデートは、自動処理が行えないのは当然として、手動操作で行うにしても一筋縄では済まないのが普通なのである。

バックポートの使用に関係するその他の問題としては、システムを長期間使用し続けてゆけば行くほど、新たに追加したバックポートが最新のもので無くなって行くことが挙げられる。そして最終的にディストリビューション全体をアップグレードする際には、ユーザの手作業によるパッケージ管理が必要であり、sources.listファイルに追加したバックポートリポジトリをすべて削除するか、あるいはsources.listsファイルのバックポート行にpin priority指定をしておく必要があるので注意しよう。

以上、様々な制限の伴うバックポートであるが、使い方さえ誤らなければ、実績ある安定版システムと新機能の追加された不安定版アプリケーションとを併用する上で非常に有効な存在となるはずである。

NewsForge.com 原文