使用 Pyrus 安装 ezComponents
这与 Problems Installation PHP EzComponents using 相关梨。
我正在尝试对 Pyrus 进行全新安装,而不像 pear 过去那样安装任何软件包(意味着没有 pear 安装程序等)。 然而,我遇到了许多工具所依赖的 ezComponents 问题。 每当我运行 sudopyrus 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 安装东西可以,但是当我尝试使用 sudopyrus/usr/lib/php 让 Pyrus 接管控制权时升级 ezc/ConsoleTools 我得到完全相同的错误,因为它试图再次下载包。
我最好的猜测是 ezComponents 正在使用一些自定义的 pear 通道服务器。我该如何解决这个问题?或者我是否必须等待各个软件包维护者更新其依赖项?
顺便说一句,这是在 OSX 10.6 上。
this is somewhat related to Problems installing PHP EzComponents using pyrus.
I am trying to do a clean installation of pyrus without any package installed the way pear used to do it (meaning no pear installer etc.).
I am however running in to problems with the ezComponents which a lot of tools depend on.
Whenever I run sudo pyrus install ezc/ConsoleTools
i get:
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
Installing the stuff with pear works, but when i then try to get pyrus to take over control with sudo pyrus /usr/lib/php upgrade ezc/ConsoleTools
I get exactly the same error because it is trying to download the package again.
My best guess is that ezComponents is using some custom pear channel server. How do I work around this? Or do I have to wait for individual package maintainers to update their dependencies?
This is on OSX 10.6 btw.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,所以我想通了。 Pyrus 尝试在 Pyrus/Channel/RemotePackage.php 的第 356 行获取 .pem 文件。它通过将 .pem 附加到包 url 来实现这一点。
该文件不存在于 ezComponents 上,服务器以 302 重定向而不是 404 响应,我的问题中提到的 302 重定向错误已被修复,所以现在 Pyrus 遵循 url,这导致首页以 200 OK 响应。现在,pyrus 认为首页 html 是证书,并尝试用它来验证包。
解决方法是简单地关闭 openssl mod,然后跳过整个检查。
在 OS X 上说起来容易做起来难,因为这需要重新编译:-) 我想剩下要做的就是编辑源代码。
OK, so I figured it out. Pyrus tries to fetch a .pem file on line 356 of Pyrus/Channel/RemotePackage.php. It does that by appending .pem to the package url.
This file is not present on ezComponents and the server responds with a 302 redirect instead a 404, the 302 redirect bug mentioned in my question has been fixed, so now pyrus follows the url, which leads to the frontpage responding with 200 OK. Now pyrus thinks the frontpage html is the certificate and tries to validate the package with it.
A workaround is simply to turn the openssl mod off, the entire check is then skipped.
Which is easier said than done on OS X, since this would require a recompile :-) I guess all that's left to do is editing the source.