WEBからののPEARインストール

以下の質問を見て、ちょっといじってみました。

http://q.hatena.ne.jp/1324957466

結果としては、go-pear.phpにちょっと手を加えて、CoreServerでのWEBからのPEARのインストールが可能になりました。

変更したものを、

http://test.fr-soft.com/files/go-pear.phps

に置きました。このファイルをダウンロードして、go-pear.phpとリネームして使ってもらえれば動くと思います。

中身に興味がない人はここまで読んで、頑張ってください。


では、何をしたか?
パッチも、
http://test.fr-soft.com/files/go-pear.patch
として置いておきますが、一番の原因は、http://q.hatena.ne.jp/1323623815 のコメントで、rouge_2008さんがおっしゃっていることそのままです。

go-pear.phpの115行目以降で定義している「http://svn.php.net/viewvc/pear/pear-core/branches/PEAR_1_4/PEAR.php」にアクセスできない為、発生しているエラーのようです。
http://svn.php.net/viewvc/pear/pear-core/」が空になっています。アクセスして確認してみてください。
※他に「http://svn.php.net/viewvc/pear/pear-core/branches/PEAR_1_4/Console/Getopt.php」が必要ですが、こちらもありません。

調べてみると、pear-coreのソース管理は、php.netのSVNではなく、GitHubに移行したみたいです。
https://github.com/pear/pear-core

そんな訳で、上記のダウンロードするURLをGitHubのものに書き換えてあげました。
つまり、
http://svn.php.net/viewvc/pear/pear-core/branches/PEAR_1_4/PEAR.php
ではなく、
https://raw.github.com/pear/pear-core/master/PEAR.php
です。

これで動くかと思いきや、go-pear.phpの中でファイルをダウンロードしている関数が、httpsに対応していない模様。作ったパッチはここが結構いい加減なのですが、fopen_wrappersが有効だと仮定して、file_get_contentsでダウンロードさせてしまいました。もし、fopen_wrappersが無効な環境ではこの部分を手を加える必要があります。

Console/Getopt.phpは、SVN内で管理されているものの場所が変ったみたいですね。
http://svn.php.net/viewvc/pear/pear-core/branches/PEAR_1_4/Console/Getopt.php?view=co

http://svn.php.net/viewvc/pear/packages/Console_Getopt/trunk/Console/Getopt.php?view=co
と書き換えて終了。

さて、これで必要なファイルもダウンロードできて完璧かと思ったら、PEAR5がないとおっしゃる。
という訳で、こいつもダウンロードするファイルのリストに追加してやりました。

以上で、動作するようになりました。


しかし、大した変更ではないにしろ、PEAR5.phpがないとか、GitHubに管理場所変わってるのに対応してないとか、まともにgo-pear.phpは管理されてない感じですね。


2012/05/18追記:

coffeさんからのご指摘頂きましたように、Archive_Tarもgithubに管理を移行した模様です。
http://test.fr-soft.com/files/go-pear.phps
も動作するように書き換えました。