pearコマンドが使えなくなったらどうするか
PEARサイトがリニューアルしたらしい - Do You PHP はてなでも書きましたが、PEAR1.4.0より前のバージョンを使っている場合、アップグレードする必要があります。
$ sudo pear upgrade --force http://pear.php.net/get/Archive_Tar http://pear.php.net/get/XML_Parser http://pear.php.net/get/Console_Getopt $ sudo pear upgrade --force http://pear.php.net/get/PEAR-1.4.3.tar $ sudo pear upgrade PEAR
。。。なんですが、「No handlers for package.xml version 2.0 ...」なエラーが出てアップグレードできない場合があります(というか、ハマりました)。ここで、1つずつインストールしようと
$ sudo pear upgrade --force http://pear.php.net/get/Archive_Tar
とかやってしまうと、
$ sudo pear upgrade --force http://pear.php.net/get/XML_Parser Warning: main(Archive/Tar.php): failed to open stream: No such file or directory in Common.php on line 23 Fatal error: main(): Failed opening required 'Archive/Tar.php' (include_path='/usr/local/lib/php') in /usr/local/lib/php/PEAR/Common.php on line 23 $
みたいに悲しい目に遭ってしまいます(というか、やっちゃいました)。こうなると、pearコマンド自体が使えない状態になってしまいます。
で、どうするか?
2分ほど考えましたが、PHP4.4.2にバンドルされているPEARが一部壊れている件 - Do You PHP はてなと同様にgo-pearを使ってPEAR・Archive_Tar・Console_Getoptをまとめてインストールし直すのが簡単で良い気がします(しましたw)。
ということで、
$ wget --proxy=off -O - -q http://pear.php.net/go-pear | sudo php Welcome to go-pear! Go-pear will install the 'pear' command and all the files needed by it. This command is your tool for PEAR installation and maintenance. : $ pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.2 stable Console_Getopt 1.2.3 stable HTML_Template_IT 1.1 stable Net_UserAgent_Detect 2.0.1 stable PEAR 1.6.2 stable :
でインストール完了。無事にupgradeもできましたとさ。
あー。なにやってんだかorz
ちなみに、以前使われていて有効期限切れとなってしまったドメイン「go-pear.org」は、その後売りに出されたようですw
追記(2009/11/05 10:12)
追記時点では、アップグレードする必要があるパッケージがバージョンアップしているので、各パッケージのバージョン番号を明示する必要があります。また、PEAR-1.4.3にアップグレードした後、PEAR-1.4.11にアップグレードする必要があります。
# pear upgrade --force http://pear.php.net/get/PEAR-1.3.6.tgz http://pear.php.net/get/Archive_Tar-1.3.1 http://pear.php.net/get/Console_Getopt-1.2 # pear upgrade http://pear.php.net/get/PEAR-1.4.3 # pear upgrade --force PEAR-1.4.11 # pear upgrade PEAR