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 顺便说一句。

4

1 回答 1

1

好的,所以我想通了。Pyrus 尝试在 Pyrus/Channel/RemotePackage.php 的第 356 行获取 .pem 文件。它通过将 .pem 附加到包 url 来做到这一点。

此文件在 ezComponents 上不存在,服务器以 302 重定向而不是 404 响应,我的问题中提到的 302 重定向错误已修复,所以现在 pyrus 跟随 url,导致首页响应 200 OK。现在 pyrus 认为首页 html 是证书并尝试使用它来验证包。

一种解决方法是简单地关闭 openssl mod,然后跳过整个检查。在 OS X 上说起来容易做起来难,因为这需要重新编译 :-) 我想剩下要做的就是编辑源代码。

于 2011-08-23T17:50:05.133 回答