Установка ezComponents с Pyrus
Это в некоторой степени связано с проблемами при установке PHP EzComponents с использованием pyrus.
Я пытаюсь выполнить чистую установку 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
Установка вещи с помощью груши работает, но когда я тогда пытаюсь заставить Pyrus взять контроль над sudo pyrus /usr/lib/php upgrade ezc/ConsoleTools
Я получаю точно такую же ошибку, потому что он пытается загрузить пакет снова.
Мое лучшее предположение заключается в том, что ezComponents использует некоторый пользовательский сервер каналов груши. Как мне обойти это? Или мне нужно подождать, пока отдельные сопровождающие обновят свои зависимости?
Это на OSX 10,6 кстати.
1 ответ
ОК, так что я понял это. Pyrus пытается извлечь файл.pem в строке 356 файла Pyrus/Channel/RemotePackage.php. Это делается путем добавления.pem к URL-адресу пакета.
Этот файл отсутствует в ezComponents, и сервер отвечает перенаправлением 302 вместо 404, ошибка перенаправления 302, упомянутая в моем вопросе, была исправлена, поэтому теперь pyrus следует за URL, что приводит к тому, что главная страница отвечает 200 OK. Теперь pyrus думает, что frontpage html является сертификатом, и пытается проверить пакет с ним.
Обходной путь - просто отключить мод openssl, тогда вся проверка пропускается. Что легче сказать, чем сделать в OS X, поскольку для этого потребуется перекомпиляция:-) Думаю, все, что осталось сделать, - это отредактировать исходный код.