Pear - удалось, но это не действительный пакет

Во время установки пакета pecl я получил ошибку,

Download of "pecl/pecl_http" succeeded, but it is not a valid package archive
Error: cannot download "pecl/pecl_http"

Эта ошибка подходит для всех пакетов. Поэтому я попробовал решение, данное здесь, http://cweiske.de/tagebuch/pear-php-5.5.htm. Но это не работает. И у меня нет другой подсказки. Было бы очень полезно, если бы кто-то объяснил, в чем проблема. Пожалуйста, помогите.

Ответ 1

Эта ошибка обычно затрагивает системы, обновленные до Ubuntu 14.04 LTS от Ubuntu 12.04 LTS.

Существует обходное решение для php5-5.5.9, прокомментированное kolAflash на Launchpad.

Обходной путь содержит небольшую опечатку (tar вместо tgz), поэтому я предоставляю рабочее решение:

# First run pear to download the packages. It will probably put the packages into
# /build/buildd/php5-5.5.9+dfsg/pear-build-download/
# but it can't install them.
$ pear upgrade

# Un-Gzip the downloaded packages.
$ gunzip /build/buildd/php5-5.5.9+dfsg/pear-build-download/*.tgz

# Now pear should be able to work with the pure tar-files.
$ pear upgrade /build/buildd/php5-5.5.9+dfsg/pear-build-download/*.tar

Все кредиты для этого обходного пути, очевидно, идут в kolAflash.

Ответ 2

Похоже, что Pear не может установить из архива tgz. Вы должны явно запрашивать несжатые файлы при загрузке с помощью опции -Z, --nomompress.

Итак, попробуйте sudo pear install -Z package

Ответ 3

Лучшим решением для этого является обновление PEAR-архивного пакета, который использует установщик груши, и после этого вам не нужно явно запрашивать несжатые файлы при установке новых или обновлении существующих пакетов.

$ sudo pear upgrade -Z Archive_Tar

Вам не нужно делать это для каких-либо других пакетов, если вы сначала сделаете это для Archive_Tar.

Эта проблема возникает из-за того, что Ubuntu немного изменил строки формата pack/unpack, чтобы выровнять их с поведением Perl, что нарушает обратную совместимость. PEAR исправил это в последовательных версиях Archive_Tar (Ubuntu продолжал делать эти изменения в каждой последующей версии PHP...). И поэтому установщик груши требует более поздней версии Archive_Tar, чем 1.3.11 - подробности находятся на https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1434099.

Вам нужно будет сделать это после каждого обновления программного обеспечения, влияющего на PHP, который предлагает Ubuntu, поскольку обновление откатывает версию Archive_Tar, которую вы установили локально. Он также откатывает консоль_Getopt, XML_Util и PEAR.

Ответ 4

У меня была эта проблема, и в итоге у меня была обновлена ​​Archive_Tar с помощью

gunzip *.tgz tar -xvf Archive_Tar-1.4.2.tar mv package.xml Archive_Tar-1.4.2 cd Archive_Tar-1.4.2 pear upgrade package.xml

После этого работа для меня работала на грушах. Я ранее имел Archive_Tar-1.3.10 и обновлялся до 1.4.2

Ответ 5

Похоже, это ошибка, и она связана с определенной версией части программного обеспечения. Быстрый поиск в googling нашел ссылку на форумы cpanel с такой проблемой, как и в 2011 году, и совершенно свежий https://bugs.php.net/bug.php?id=67075. Рассмотрите возможность изменения версии PHP/переключения из 32-битной системы (например, она воспроизводится с 32-битным новым новым Ubuntu 14.04 и не воспроизводится с 64-разрядной версией того же самого).