くまきち

山と旅と家族が大事。
でも激しい物欲が理性と財布のタガを飛ばす
最近は自転車も乗ってる

pear で channel 関連のエラー

2009-10-04 19:15:28 | SEまわり
とあるサーバに PEAR::DB をセットアップしようとしたときのこと。

組織内サーバで、プロキシを経由しないと外部への HTTP アクセスができないので、まずはそれを設定してから、
  
pear install DB


とすると、次のようなエラーが出てしまう。

  
Notice: Undefined variable: dorest in PEAR/Command/Install.php on line 1220
Notice: Undefined variable: latest in PEAR/Command/Install.php on line 1228
Notice: Undefined variable: latest in PEAR/Command/Install.php on line 1234
Warning: array_change_key_case(): The argument should be an array in PEAR/Command/Install.php on line 1234


正直、このエラーメッセージを見ても、何のことだかさっぱり分からない。

が、他の操作(ローカル)はできていて、外部にアクセスが必要な操作をしたとたんにこれだから、その辺に見当を付けて、まずはプロキシ設定をチェック。問題ないようだ。

次に、チャンネル関係。 当たり。

PHP のライブラリがあるパス(今回は /usr/local/lib/php)の下には、.channel というサブディレクトリがあり、その中にチャンネルの情報が納められている。

こいつがどうやらおかしいようなので、このディレクトリを丸ごと消してしまう(channel-update すれば再生成されるので問題ない)。

  
rm -rf .channels


そして、channel-update を実行する。

  
pear channel-update pear.php.net


これで、update に成功すれば、あとは install を続ければ OK。


しかし、このサーバの PHP は 5.2.11 を新規インストールしたばかりで、一度も PEAR を使ったことのない状態なんだが、それで channel 情報がおかしいって、どうなんだろうね。

最新の画像もっと見る