チャネルの使用法

チャネルって?

チャネルとは、パッケージの取得元のことです。 詳細な情報は、マニュアルの チャネルに関するセクション 参照ください。

とりあえずは「チャネルっていうものを使えば、 PEAR 以外のところにあるパッケージもインストールできるらしい」 ということを知っておけばよいでしょう。かの有名な Horde や PHPUnit といったプロジェクトも、PEAR 互換のチャネルでソフトウェアを配布しています。

チャネルの登録

チャネルを使う前に、まずそのチャネルを pear に登録しなければなりません。 このことを "channel discovery" と言います。

プロジェクトが使用しているチャネルの URL を調べて、たとえば次のように入力します。

$ pear channel-discover http://pear.phpunit.de
Adding Channel "pear.phpunit.de" succeeded

あるいは、channel.xml ファイルをダウンロードすれば channel-add でチャネルを追加することができます。

$ pear channel-add my-channel.xml
...

list-channels を使用すれば、 登録済みのチャネルの概要を知ることができます。

$ pear list-channels
Registered Channels:
====================
Channel                  Summary
components.ez.no         eZ Enterprise components
demochanserv.bogo        Simple demo channel server
gnope.org                PHP-Gtk2 applications
pear.chiaraquartet.net   Chiara Testing Channel
pear.phing.info          Channel for Phing build tool releases
pear.php.net             PHP Extension and Application Repository
pear.phpunit.de          PHPUnit channel server
pear.symfony-project.com symfony project PEAR channel
pearified.com            PEAR-Compatible Extension and Application
                         Repository
pecl.php.net             PHP Extension Community Library
__uri                    Pseudo-channel for static packages

チャネルについてのより詳細な情報を取得するには channel-info を使用します。 これは、チャネルについての説明とその短縮名 (エイリアス)、 そしてミラーの情報を表示します。

$ pear channel-info pear.php.net
Channel pear.php.net Information:
=================================
Name and Server         pear.php.net
Alias                   pear
Summary                 PHP Extension and Application Repository
...

チャネル上のパッケージの使用法

デフォルトのチャネル 以外にあるパッケージをインストールしたり その他の操作をしたりするには、チャネル名を (フルネームあるいは短縮形式で) 指定する必要があります。

$ pear install gnope/Dev_Inspector
... installation of package "Dev_Inspector" in channel "gnope"

$ pear list -c pear.phpunit.de
Installed packages, channel pear.phpunit.de:
============================================
Package Version State
PHPUnit 3.2.5   stable

要するに、パッケージ名を指定するところでは $channel/$packagename を指定するようにすればいいということです。 また、チャネルをサポートしているすべての機能では -c オプションでチャネル名あるいはエイリアスを指定することができます。

パスワードで保護されたチャネル

PEAR 互換のチャネルは、パスワードで保護することもできます。 これを使用するのは、特定の顧客向けにカスタマイズした プロプライエタリソフトウェアを配布するなど、 パッケージを不特定多数には公開したくない場合です。

パスワードによる保護は、HTTP ベーシック認証 (Apache の場合は .htaccess.htpassword) で行います。 パスワードで保護されたチャネルを登録しようとすると、 このようなメッセージが表示されます。

$ pear channel-discover pear.company.com
Discovery of channel "pear.company.com" failed
 (channel-add: Cannot open "http://pear.company.com/channel.xml"
 (File http://pear.company.com:80/channel.xml not valid
 (received: HTTP/1.1 401 Authorization Required
)))

この場合は、まずはブラウザや wget などで channel.xml ファイルをダウンロードします。 channel.xml は、 常にチャネルサーバのルートディレクトリにあります。 ダウンロードしたら、そのファイルを使ってチャネルを登録します。

$ pear channel-add /path/to/saved/channel.xml
Adding Channel "pear.company.com" succeeded

さらに、このチャネル用のユーザ名とパスワードを PEAR マネージャに教えてやらなければなりません。 set-config にチャネル名を指定して これを登録します。

$ pear config-set -c pear.company.com username johndoe
config-set succeeded
$ pear config-set -c pear.company.com password secret
config-set succeeded

うまく登録できたかどうか確かめるために、 チャネル上のパッケージの一覧を取得してみましょう。

$ pear list-all -c pear.company.com
Retrieving data...0%
All packages [Channel pear.company.com]:
==========================
Package             Latest Local
comp/WorldDominator 0.8.1        Tool to dominate the world