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 をローカルサーバで動かしてみる

github.com

openpear.orgGitHubホスティングされているようで、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-showtemp_dir に入ってます

  • 動かない openpear.org から取得した channel.xml
$ 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.