Ubuntuはパッケージによってソフトウェアを管理しています。今回は、必要なファイルが含まれるパッケージの探し方と、どうしても使いたいソフトウェアが存在しない場合の「裏技」を紹介します。
必要なファイルの含まれるパッケージの探し方
packages.ubuntu.comの利用
あるファイルが含まれているパッケージを探したい場合(たとえば、「libssl.soがどのパッケージに含まれているのか知りたい」場合)、http://packages.ubuntu.com/を利用するのが手軽です。
このサイトのトップページ中程にある、"Search the contents of packages"という検索ボックスを利用してください。このページにはいくつかの検索ボックスがありますので、誤って"Search package directories"などを利用しないように注意してください。
検索結果は次のように表示されます。
apt-fileの利用
apt-fileは次のように利用します。なお、同様のコマンドラインベースでの検索は第14回で紹介したauto-aptでも行えます。。
apt-fileパッケージをインストールし、データベース更新のために、apt-file updateを行います。
なお、8.04を利用している場合、以下のようにupdates・security・backportsについてはContentsファイルが取得できません。これらのファイルはまだ存在しませんので、これは正常な動作です。いずれupdates・security・backportsに属するパッケージがリリースされた時点で取得できるようになります。
apt-fileパッケージは次のように利用します。
Debianパッケージの流用
UbuntuはDebianの不安定版(unstable)を元に開発されています。このため、Ubuntuに存在しない最新版のパッケージなどは、Debianのものを流用することが不可能ではありません。ここでは一種の「裏技」として、Debianパッケージを流用して利用する手順を紹介します。
※注意:
Debianパッケージを流用することは、本来想定されていない行動です。予想外のバグに遭遇する可能性がありますので、やむを得ない場合にのみ行ってください。
また、Debianのバイナリパッケージを「そのまま」インストールしてはいけません。バイナリパッケージをそのまま流用することを防ぐ機構は用意されていませんので、ユーザ側で注意する必要があります。debian.orgなどからdebianパッケージをダウンロードしてインストールしてしまった場合、多くはうまく動いてしまうか、悪くても起動した瞬間にクラッシュする程度で済むこともありますが、最悪の場合は不正な依存関係により、システムを破壊するおそれすらあります。
最初に、パッケージのビルドに最低限必要な環境を整えます。以下の手順でパッケージをインストールしてください(もちろんSynapticからでもインストールできますが、今回は端末の中心の操作になりますので、コマンドで操作した方が早いはずです)。
また、ほとんどの場合、Debianパッケージを流用する場合はtestingではなくsid(unstable)にあるものを使うことになるでしょう。以下のapt-lineを/etc/apt/sources.listの末尾に追加してください。
パッケージの検証に利用する公開鍵を取得します。
この状態でapt-get updateを行うと、以下のようなヒットメッセージが出力されます。これでDebianパッケージのソースを取得する準備が整いました。
以下のような手順でapt-get sourceコマンドでパッケージを取得することで、Debianパッケージのソースが展開されます。以下は"jd"というソフトウェアのパッケージを取得しています。
apt-get sourceを行うことでカレントディレクトリにdsc・tarボール・diffが取得され、さらにソースを展開したディレクトリが作成されますので、~/直下などでは作業を行うべきではありません。以下の例では ~/src/deb というディレクトリを作成し、そこで展開しています。
ビルドを行うためには多くのライブラリが必要になりますが、apt-get build-depを用いることで、Build Dependsに定義されているパッケージをまとめてインストールすることができます。
ビルドに必要なパッケージが整ったら、debuildを用いてパッケージをビルドします。-r fakerootを指定することで、root権限なしにパッケージを作成することができます。
ビルドが終了したら、「カレントディレクトリの一つ上」のディレクトリにパッケージが作成されています。以下の例ではビルド後に cd .. することで、カレントディレクトリにパッケージが存在するようにしています。
ビルドされたパッケージは、次の手順でインストールすることができます。
自動的なビルド&インストール
上述の操作はapt-get sourceコマンドに "--compile" オプションを与えることで、自動的に実行させることもできます(-b・--buildなどでも同じ挙動です)。
日常的にDebianからパッケージを流用する場合は、以下のように操作するのが簡便でしょう。
なお、いずれの方法を取る場合も、リリース間の移行の障害になる可能性がありますので、アップグレードを行う前に、必ずパッケージを削除することを忘れないでください。削除はapt-get removeで行うことができます。
より適切な運用はUbuntu用にパッケージの一部をカスタマイズし、バージョン番号などにDebian由来であることを示す文字列を含めることですが、簡易な運用であればこの程度でも問題ないでしょう。ただし、あくまで「裏技」であることを忘れないでください。