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

PEAR があなたのマシン上で動くようになったら (インストール を参照ください)、 おそらく次は何かのパッケージをインストールすることになるでしょう。 ここでは、PEAR のコマンドラインインストーラをはじめて使う人のために その方法を説明します。

通常のインストール手順

PEAR パッケージ "foo" をインストールする一般的な手順は、 このようになります。

$ pear install foo

これを入力して Enter キーを押すと、 パッケージをダウンロードしてそれをインストールします。 パッケージ名は大文字小文字を区別しません。 インストーラが自動的に小文字に変換してその名前のパッケージを探します。

もし既にそのパッケージがインストールされている場合は、 このようなメッセージが表示されます。

$ pear install foo
Ignoring installed package pear/foo
Nothing to install

インストール済みのパッケージよりも新しいバージョンをインストールしようとしている場合でも 同じようになります。既存のパッケージの最新版に更新するコマンドは、次のようになります。

$ pear upgrade foo
upgrade ok: channel://pear.php.net/Foo-1.2.3

既に最新版のパッケージがインストールされている場合は、 このようなメッセージが表示されます。

Ignoring installed package pear/Foo
Nothing to upgrade

一部のファイルを削除してしまったなどの理由で、 どうしても再インストールしたいという場合は、次のいずれかの手段があります。

  • いったんアンインストールしてからインストールしなおす

  • 強制的にインストールする

強制的にインストールさせる場合には、 自分がこれから行おうとしていることをきちんと把握しておきましょう。 さもないと、場合によっては PEAR の環境を壊してしまうかもしれません。 何かを強制的に行う場合は、最後に次のようなオプションを指定します。

$ pear install -f foo
$ pear upgrade -f foo

安定版ではないアルファ版/ベータ版のパッケージ

ときどき、次のようなエラーメッセージが表示されることがあります。

Failed to download pear/foo within preferred state "stable",
 latest release is version 0.1.2, stability "beta",
 use "channel://pear.php.net/foo-0.1.2" to install
Cannot initialize 'channel://pear.php.net/foo', invalid or missing package file
Package "channel://pear.php.net/foo" is not valid
install failed

このエラーが発生する原因は、 PEAR のデフォルト設定では安定版のパッケージしかインストールできないようになっていることです。 devel (開発版) や alpha (アルファ版)、 beta (ベータ版) のパッケージをインストールしようとすると、拒否されます。 これをインストールしたい場合は、バージョン番号を指定するか あるいはそのパッケージの版を指定します。

$ pear install Foo-beta
$ pear install Foo-alpha

特定のバージョンをインストールしたり 特定のバージョンに更新したりしたい場合は次のようにします。

$ pear install Foo-1.2.3
$ pear upgrade Foo-1.2.3

最先端を行く

パッケージの安定性なんて大して気にしていなくて、毎回 -alpha-beta をつけるのが面倒くさいという人は、グローバルな設定オプションを指定するといいでしょう。

$ pear config-set preferred_state alpha
config-set succeeded

このコマンドで指定できる安定性の種類は次のとおりです (安定度の高い順に並べてあります)。

  • stable

  • beta

  • alpha

  • devel

依存性

あるパッケージを正しく機能させるためには 別のパッケージをインストールしなければならないということもよくあります。 このような関係のことを「依存性」といいます。PEAR インストーラは依存性の処理もサポートしており、 必要なパッケージは自動的にインストールします。 また、オプションで使用するパッケージもインストールしたければ、 それも自動的に行うことができます。

必須の依存性があるパッケージをインストールしようとした際に、 エラーが発生することがあります。エラーの中身をじっくり読んでみると、 どのパッケージが必要 (そしてシステム上にインストールされていない) かがわかります。

$ pear install html_page2
Did not download dependencies: pear/HTML_Common,
 use --alldeps or --onlyreqdeps to download automatically
pear/HTML_Page2 requires package "pear/HTML_Common" (version >= 1.2)
No valid packages found
install failed

この場合の対応方法は、次のいずれかです。

  • 依存するパッケージを別途手動でインストールする

  • 必須の依存パッケージのみを PEAR に自動的にインストールさせる

  • 必須だけでなくオプションの依存パッケージも含めて PEAR に自動的にインストールさせる

最初の選択肢は、かなり大変な方法です。依存パッケージをインストールしようとすると、 そのパッケージもさらに別のパッケージに依存しているかもしれません。

それ以外の方法をとる場合は、インストールコマンドにオプション --onlyreqdeps (必須の依存パッケージのみインストール) あるいは --alldeps (すべての依存パッケージをインストール) を指定するだけです。

$ pear install --onlyreqdeps html_page2
WARNING: "pear/HTML_Common" is deprecated in favor of "pear/HTML_Common2"
downloading HTML_Page2-0.5.0beta.tgz ...
Starting to download HTML_Page2-0.5.0beta.tgz (15,467 bytes)
......done: 15,467 bytes
downloading HTML_Common-1.2.4.tgz ...
Starting to download HTML_Common-1.2.4.tgz (4,519 bytes)
...done: 4,519 bytes
install ok: channel://pear.php.net/HTML_Common-1.2.4
install ok: channel://pear.php.net/HTML_Page2-0.5.0beta

オフラインでのインストール

特定のパッケージをダウンロードして、 例えばオフライン状態にある他のマシンにインストール/ アップグレードするといったこともできます。

$ pear download Foo

ダウンロードしたファイル名は、もし Foo の最新バージョンが 1.2.3 なら Foo-1.2.3.tgz のようになります。 これをインストールするには、次のようにタイプするだけです。

$ pear install Foo-1.2.3.tgz

手動でのインストール

このセクションの説明は削除しました。 手動でのインストールを行うには、 パッケージの構造やインストールの流れなどに関する深い理解が必要となるからです。 どうしても PEAR インストーラなしでインストールしたいという場合は、 開発者向けガイド (package.xml および package.xml 2.0) で package.xml についての説明を読んでください。

シェルが利用できないリモートホストに PEAR をインストールしたい場合は 共有ホストでの PEAR のローカルコピーのインストール を参照ください。

CVS からのパッケージのインストール

ここでは、CVS から最新の開発版 PEAR パッケージをインストールする方法について説明します。

実稼動環境では、CVS から得たパッケージを実行することは控えるべきです。 CVS バージョンは通常のリリースと異なります。つまり、

  • メンテナやその他の人たちからの援助が得られません。
  • CVS バージョンは、PEAR インストーラのアップグレード機能を破壊することがあります。

CVS から得たパッケージは、次の場合にのみ使用するべきです。

  • メンテナが勧めた場合
  • パッケージの開発を援助したい場合
  • リリースされていない機能やパッチを本当に必要としている場合

CVS からパッケージをインストールする場合、パッケージのメンテナが 新しいリリースを作成するのと同じステップを取る必要があります。 次のいずれかのステップで問題がある場合は、本マニュアルの デベロッパーズガイドを参照してください。

  1. パッケージを http://www.php.net/anoncvs.php に記述されている通りに CVS から チェックアウトする。

    チェックアウトするモジュールは、pear/<packagename> となります。たとえば、 cvs -d :pserver:cvsread@cvs.php.net:/repository checkout pear/HTTP_Client

  2. package.xml をチェックし、dir および file 要素が 実際のファイル・ディレクトリ構造にあっているかどうか調べる。 もし異なるなら、メンテナに連絡をとり、package.xml を アップデートするように頼んでみてください。

  3. 有効なパッケージのアーカイブを PEAR インストーラを使って作成する。 pear package <path to package.xml>

  4. 対象のパッケージがインストール済みの時は、バージョンに関連する問題を避けるために削除する。 pear uninstall <package>

  5. パッケージのアーカイブをインストールする。 pear install <package-file>

    以上で CVS バージョンがインストールされました。

(CVS バージョンは) パッケージの正式リリース後、できるだけ早くアップグレードするべきです。 正式リリースをインストールする際には、バージョンの衝突を避けるため、 CVS バージョンを削除してください。

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

PECL パッケージのインストール手順については、PHP のウェブサイトにて こちらのマニュアル を参照してください。

PEAR の設定の変更 (Previous) パッケージについての情報の取得 (Next)
Last updated: Thu, 30 Oct 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: Christoph Mauerhofer
When installing a package on Windows and you are getting an error like:

ERROR: failed to mkdir C:\php\pear\tests\package-name\tests

(replace package-name with the name of your package) then try starting the Commandline (cmd.exe) as administrator.
Note by: roychri
I wrote an article on how to manually install pear offline from the command line on a machine that has no internet access.

http://christian.roy.name/blog/install-pear-without-network-no-internet-accessoffline

I hope this helps.
Note by: hm2k
Now for git:

http://code.google.com/p/hm2k/source/browse/trunk/code/shell/peargit
Note by: natere2ster@gmail.com
When trying to upgrade i get

"Cannot install, php_dir for channel "pear.php.net" is not writeable by the current user"

What do I need to do?

Thanks!

Nate
Note by: hm2k
Here's what I came up with to make it easier to install a PEAR package from the PEAR SVN repository:

http://code.google.com/p/hm2k/source/browse/trunk/code/shell/pearsvn
Note by: hm2k
Here's what I came up with to make it easier to install a PEAR package from the PEAR SVN repository:

http://code.google.com/p/hm2k/source/browse/trunk/code/shell/pearsvn
Note by: hm2k
Forget that last correction...

s/pear install Net_DNSBL/pear install Net_DNSBL/package.xml
Note by: hm2k
Correction

s/pear package Net_DNSBL/pear package Net_DNSBL/package.xml
Note by: hm2k
A working example of Installation from SVN:

svn checkout http://svn.php.net/repository/pear/packages/Net_DNSBL/trunk Net_DNSBL
pear package Net_DNSBL/package.xml
pear uninstall Net_DNSBL
pear install Net_DNSBL
rm -fr Net_DNSBL

I included it here for easy reference, just replace Net_DNSBL with the name of the package you wish to use.