pearでopenpear.orgのライブラリを取得する
環境
$ pear version PEAR Version: 1.9.5 PHP Version: 5.4.45
openpear.orgをchannelに登録する
$ pear channel-discover openpear.org Error: Unable to create XML parser Discovering channel openpear.org over http:// failed with message: channel-add: invalid channel.xml file Trying to discover channel openpear.org over https:// instead Error: Unable to create XML parser Discovery of channel "openpear.org" failed (channel-add: invalid channel.xml file)
怒られました。。。
その他のチャンネルでは pear channel-discover
で登録できるのものもあるので、Pear と Pirum 間の互換性がないのかと思い、いろいろと試してみました。
openpear.org をローカルサーバで動かしてみる
openpear.org
は GitHub でホスティングされているようで、clone してきて、自前の localサーバで動かしみてたところ正しく動きました。
- 動かない openpear.org のヘッダ
$ curl -I http://openpear.org/channel.xml HTTP/1.1 200 OK Date: Fri, 10 Mar 2017 06:52:24 GMT Content-Type: application/xml Connection: keep-alive Set-Cookie: __cfduid=d5e6aeae642aacd5547e6ff65793ff3691489128744; expires=Sat, 10-Mar-18 06:52:24 GMT; path=/; domain=.openpear.org; HttpOnly Last-Modified: Wed, 25 Nov 2015 07:27:58 GMT Access-Control-Allow-Origin: * Expires: Fri, 10 Mar 2017 06:07:44 GMT Cache-Control: max-age=600 X-GitHub-Request-Id: 26AC:06EC:435F53F:5597F77:58C24058 Via: 1.1 varnish Age: 71 X-Served-By: cache-itm7423-ITM X-Cache: HIT X-Cache-Hits: 1 X-Timer: S1489128744.700232,VS0,VE0 Vary: Accept-Encoding X-Fastly-Request-ID: 90e706971793bc76b6fe86c8db9cb0d9e398c610 X-Content-Type-Options: nosniff Server: cloudflare-nginx CF-RAY: 33d459de6719208a-KIX
- 動くローカルの openpear.org のヘッダ
$ curl -I http://openpear.org/channel.xml HTTP/1.1 200 OK Date: Fri, 10 Mar 2017 06:50:23 GMT Server: Apache/2.4.23 (Unix) PHP/5.6.28 Last-Modified: Fri, 10 Mar 2017 06:17:57 GMT ETag: "317-54a5a529baf40" Accept-Ranges: bytes Content-Length: 791 Content-Type: application/xml
Pear がダウンロードした channel.xml を比較
pear config-show
の temp_dir
に入ってます
$ cat channel.xml 317 <?xml version="1.0" encoding="UTF-8" ?> <channel version="1.0" xmlns="http://pear.php.net/channel-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/channel-1.0 http://pear.php.net/dtd/channel-1.0.xsd"> <name>openpear.org</name> <summary>Openpear PEAR channel</summary> <suggestedalias>openpear</suggestedalias> <servers> <primary> <rest> <baseurl type="REST1.0">http://openpear.org/rest/</baseurl> <baseurl type="REST1.1">http://openpear.org/rest/</baseurl> <baseurl type="REST1.2">http://openpear.org/rest/</baseurl> <baseurl type="REST1.3">http://openpear.org/rest/</baseurl> </rest> </primary> </servers> </channel> 0
- 動くローカルから取得した channel.xml
$ cat channel.xml <?xml version="1.0" encoding="UTF-8" ?> <channel version="1.0" xmlns="http://pear.php.net/channel-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/channel-1.0 http://pear.php.net/dtd/channel-1.0.xsd"> <name>openpear.org</name> <summary>Openpear PEAR channel</summary> <suggestedalias>openpear</suggestedalias> <servers> <primary> <rest> <baseurl type="REST1.0">http://openpear.org/rest/</baseurl> <baseurl type="REST1.1">http://openpear.org/rest/</baseurl> <baseurl type="REST1.2">http://openpear.org/rest/</baseurl> <baseurl type="REST1.3">http://openpear.org/rest/</baseurl> </rest> </primary> </servers> </channel>
参考サイト
Pirum - The simple PEAR Channel Server Manager
GitHub - pear/pear-core: This is the definitive source of PEAR's core files.