2011/12/09

pearコマンドが動かない時の復旧方法


久々にWebアプリの開発を古いサーバ行う事に。しかし、pearコマンドが動きません。
# pear upgrade-all
HTTP error, got response: HTTP/1.1 410 Gone
Didn't receive 200 OK from remote server. (HTTP/1.1 410 Gone)
いろいろ調べて復旧した記録を留めておきます。

PEAR - PHP Extension and Application Repository
の指示通りに、
pear upgrade --force http://pear.php.net/get/Archive_Tar http://pear.php.net/get/XML_Parser http://pear.php.net/get/Console_Getopt-1.2.2
pear upgrade --force http://pear.php.net/get/PEAR-1.3.3 (1.3.3より古いバージョンを使用している場合)
pear upgrade --force http://pear.php.net/get/PEAR-1.4.3.tar
pear upgrade PEAR
で最新版にアップグレードできるとのことでしたが、
File http://pear.php.net:80/Archive_Tar-1.3.1.tgz not valid ...
のエラーが出て、うまく行きません。
ですので、まずは、これを強制的にアップグレードしました。
# pear upgrade --force http://pear.php.net/get/Archive_Tar-1.3.1
その後、
pear upgrade --force http://pear.php.net/get/Archive_Tar http://pear.php.net/get/XML_Parser
pear upgrade --force http://pear.php.net/get/PEAR-1.4.3.tar
pear upgrade PEAR
pear upgrade-all
で、最新版へ復旧が完了しました。
なお、追加のパッケージを入れるときは、依存関係でエラーになる事があるので、
pear install --alldeps インストールパッケージ名
でインストールすると、関連ファイルも自動的にインストールされます。