とあるサーバに PEAR::DB をセットアップしようとしたときのこと。
組織内サーバで、プロキシを経由しないと外部への HTTP アクセスができないので、まずはそれを設定してから、
とすると、次のようなエラーが出てしまう。
正直、このエラーメッセージを見ても、何のことだかさっぱり分からない。
が、他の操作(ローカル)はできていて、外部にアクセスが必要な操作をしたとたんにこれだから、その辺に見当を付けて、まずはプロキシ設定をチェック。問題ないようだ。
次に、チャンネル関係。 当たり。
PHP のライブラリがあるパス(今回は /usr/local/lib/php)の下には、.channel というサブディレクトリがあり、その中にチャンネルの情報が納められている。
こいつがどうやらおかしいようなので、このディレクトリを丸ごと消してしまう(channel-update すれば再生成されるので問題ない)。
そして、channel-update を実行する。
これで、update に成功すれば、あとは install を続ければ OK。
しかし、このサーバの PHP は 5.2.11 を新規インストールしたばかりで、一度も PEAR を使ったことのない状態なんだが、それで channel 情報がおかしいって、どうなんだろうね。
組織内サーバで、プロキシを経由しないと外部への 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 情報がおかしいって、どうなんだろうね。