Linux の使い方: PHP ライブラリ提供サービス "PEAR" を利用できるようにする (CentOS 5.5)


PEAR をインストールする

PHP の各種ライブラリーを手軽にインストールする方法として、PEAR (PHP Extension and Application Repository) という PHP ライブラリ提供サービスを利用する方法があります。

CentOS 5.5 では、次のようにして PEAR をインストールすることができるようになっています。

yum install php-pear

通常であれば、これで pear というコマンドを使用して、PHP の各種ライブラリーをインストールすることができるようになります。

 

依存関係のエラーとなってしまった場合

ただ、これを自分の環境で実行してみた時、次のような依存関係に関するエラーが表示されてしまいました。

php-devel-5.1.6-27.el5_5.3.x86_64 from updates has depsolving problems

--> Missing Dependency: php = 5.1.6-27.el5_5.3 is needed by package php-devel-5.1.6-27.el5_5.3.x86_64 (updates)

Error: Missing Dependency: php = 5.1.6-27.el5_5.3 is needed by package php-devel-5.1.6-27.el5_5.3.x86_64 (updates)

なんとなく PEAR が "php-devel" パッケージのアップデートを要求しているが、"php" パッケージが現行のそれを必要としている、ということを言いたいように思えます。

これはおそらく、以前に CentOS 5.4 に PHP 5.2 をインストールしてみる でお話ししたように PHP 5 を "c5-testing" リポジトリーから追加したことが影響しているような気がします。

 

調べてみると、確かに "/etc/yum.repos.d/CentOS-Testing.repo" の "c5-testing" リポジトリーが "enabled=0" に設定されていました。

そこで、次のように "c5-testing" リポジトリーを有効にして PEAR のインストールを行ったところ、今度はうまくインストールすることができるようになりました。

yum --enablerepo=c5-testing install php-pear

ただ、これを実行しても何か依存する別パッケージのインストールやアップデートが行われる様子はない感じでした。

それでも "c5-testing" リポジトリーを有効にしたら、これまでの "base" リポジトリーからではなく、今度はそこから PEAR パッケージをインストールしようとしている感じだったので、PHP と合わせて PEAR も更新された感じなのかもしれません。

 

PEAR の利用方法

PEAR の使い方について、基本的なところを整理してみようと思います。

インストール済みのパッケージを確認する

PEAR でインストールしたパッケージを確認するには、次のようにします。

pear list

これで、インストールされているパッケージとそのバージョン情報を確認することができます。

 

パッケージの内容を確認する

PEAR が提供しているパッケージの内容を確認したい場合には、次のようにします。

pear info 【パッケージ名】

これで、【パッケージ名】 で指定したパッケージの題名や概要、依存関係の情報などを確認することができます。

また、次のようにして、そのパッケージに含まれるファイルを確認することもできるようになっていました。

pear list-files 【パッケージ名】

こうすることで、どのようなファイルがどのディレクトリーにインストールされるかどうかを確認することが可能です。

 

パッケージのインストール

PEAR が提供しているパッケージをインストールしたい場合には、次のようにします。

pear install -a 【パッケージ名】

これで、指定したパッケージをインストールすることが可能です。

上記では "-a" オプションを付けていますが、これは "依存するパッケージも全てインストールする" という意味になります。最小限の依存パッケージだけでよければ "-o" オプションに換えることも可能です。

なお、インストールの手続きは、途中で確認されることなく最後まで実行されるようなので、実稼働中の環境で使用する場合には注意が必要なこともあるかもしれません。

 

パッケージのアップデート

PEAR でインストールしたパッケージをアップデートしたい場合には、次のようにします。

pear upgrade -a 【パッケージ名】

これで、指定したパッケージをアップデートすることが可能です。

ここで指定している "-a" は、全ての依存パッケージをインストールするという意味になります。最小限の依存パッケージだけでよければ "-o" オプションに換えることも可能です。

また、次のようにすることで、インストールされているすべてのパッケージについて、アップデートする必要のあるものを見つけて更新することも可能です。

pear upgrade-all

これを実行してみたところ、何か確認されることなく、アップデート可能なパッケージすべてが最新版に更新されるようでしたので、実稼働中の環境で使用する場合には注意が必要なこともあるかもしれません。

 

パッケージの削除

PEAR でインストールしたパッケージを削除したい場合には、次のようにします。

pear uninstall 【パッケージ名】

これで、指定したパッケージを削除することが可能です。

削除処理も途中で確認されることなく行われますが、もしそのパッケージが他のパッケージで利用されていた場合には、次のようなメッセージが表示されて、アンインストールされないようになっていました。

pear/Net_Socket (version >= 1.0.7) is required by installed package "pear/HTTP_Request"

pear/Net_Socket cannot be uninstalled, other installed packages depend on this package

これなら、必要なパッケージをうっかり削除して依存関係を壊してしまうようなことはなさそうですね。

 

PEAR の使い方を確認する

CentOS 5.5 に PEAR をインストールしてみたのですが、Linux でお馴染みの man によるドキュメントは提供されていないようでした。

代わりに、PEAR 自体に使い方を表示する機能が備わっていたので、使い方を知りたい場合はそれを使うとよさそうです。

たとえば、インストール方法について知りたい場合には、次のようにします。

pear help install

これで、インストールの際の書式や、どのようなオプションを取り得るかどうかを知ることができます。

他にも "pearl help" などとすれば、PEAR が取り得るコマンドの一覧を確認することもできるようになっていました。