チャネルとは、パッケージの取得元のことです。 詳細な情報は、マニュアルの チャネルに関するセクション 参照ください。
とりあえずは「チャネルっていうものを使えば、 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 |
注意認証情報を変更した場合は、 pear clear-cache コマンドを実行してキャッシュデータを削除しなければなりません。