4

これは、 pyrus を使用して PHP EzComponents をインストールする際の問題に多少関連しています。

pear が以前行っていた方法でパッケージをインストールせずに、pyrus のクリーン インストールを実行しようとしています (つまり、pear インストーラーなどはありません)。しかし、多くのツールが依存している ezComponents で問題が発生しています。実行するたびに次のようにsudo pyrus install ezc/ConsoleToolsなります:

Using PEAR installation found at /usr/lib/php
Downloading components.ez.no/ConsoleTools
PEAR2\Pyrus\Package\Exception: Invalid abstract package components.ez.no/ConsoleTools - releasing maintainer's certificate is not a certificate

pear でのインストールは機能しますが、pyrus に制御を引き継がsudo pyrus /usr/lib/php upgrade ezc/ConsoleToolsせようとすると、パッケージを再度ダウンロードしようとしているため、まったく同じエラーが発生します。

私の推測では、ezComponents はカスタムの pear チャネル サーバーを使用していると思われます。これを回避するにはどうすればよいですか? それとも、個々のパッケージ メンテナーが依存関係を更新するのを待つ必要がありますか?

これはOSX 10.6 btwにあります。

4

1 に答える 1

1

わかりました。Pyrus は、Pyrus/Channel/RemotePackage.php の 356 行目で .pem ファイルをフェッチしようとします。これは、パッケージの URL に .pem を追加することによって行われます。

このファイルは ezComponents には存在せず、サーバーは 404 ではなく 302 リダイレクトで応答します。私の質問で言及した 302 リダイレクトのバグは修正されたため、pyrus は URL をたどり、フロントページが 200 OK で応答するようになります。現在、pyrus はフロントページの html が証明書であると考えており、それを使用してパッケージを検証しようとしています。

回避策は、単に openssl mod をオフにすることです。その後、チェック全体がスキップされます。これは再コンパイルが必要になるため、OS X で行うよりも簡単に言うことができます :-) あとはソースを編集するだけだと思います。

于 2011-08-23T17:50:05.133 に答える