“недействительный архив пакета” при попытке установить расширение PHP?

Вопрос или проблема

Я использую CENTOS 6.6 на VPS и пытаюсь установить расширение ZMQ для PHP. Я пытался установить его с помощью команды, указанной в инструкциях:

sudo pecl install zmq-beta

Однако установка завершается неудачей, выводя следующее сообщение:

root@host [/zmq]#  sudo pecl install zmq-beta
скачиваем zmq-1.1.2.tgz ...
Начало загрузки zmq-1.1.2.tgz (39,573 байтов)
..........завершено: 39,573 байтов
не удалось извлечь файл package.xml из "/root/tmp/pear/cache/zmq-1.1.2.tgz"
Загрузка "pecl/zmq" завершилась успешно, но это не является действительным архивом пакета
Ошибка: не удается загрузить "pecl/zmq"
Загрузка не удалась
установка не удалась

Я также пробовал:

sudo pecl install -Z zmq-beta

И:

sudo pecl install --nocompress zmq-beta

Но я получаю ту же ошибку.

Почему возникает эта ошибка?

SOA #1.
Я думаю, что проблема заключается в скачанном архиве. Проверьте md5sum архива:

[root@centos6 ~]# md5sum /root/tmp/pear/cache/zmq-1.1.2.tgz 
74da2fc1aa83e6fa27acffb9a37596b9  /root/tmp/pear/cache/zmq-1.1.2.tgz

Если это не то же самое – удалите его и попробуйте загрузить снова.

Кроме того, вы можете вызвать pecl с параметром -vv – тогда вы увидите больше информации об ошибке и путь, откуда был загружен файл. MIME был с http://pecl.php.net/get/zmq-1.1.2.tgz

У меня была такая же проблема, чтобы решить её:

  • Сначала загрузите zmq-1.1.2.tgz (https://pecl.php.net/get/zmq-1.1.2.tgz)
  • Извлеките tgz, чтобы получить tar архив
  • cd в директорию с tar файлом и установите этот пакет pecl с помощью sudo pear install -O zmq-1.1.2.tar

И это сработало для меня.

Почему? Я думаю, это связано с тем, что команда pecl пытается найти файл package.xml в tgz, но файл все еще заархивирован в tar архив внутри этого tgz файла.

Таким образом, загрузка и ручное извлечение решает задачу.

Ответ или решение

Ошибка "неверный архив пакета" при установке расширения PHP может возникать по нескольким причинам, особенно при использовании командной строки на CentOS 6.6. Давайте рассмотрим основные моменты, которые могут привести к данной проблеме, и возможные пути её решения.

Причины возникновения ошибки

  1. Некорректная структура архива: Ошибка "could not extract the package.xml file" указывает на то, что использованный архив .tgz не содержит необходимого файла package.xml. Обычно, этот файл должен находиться в корневом каталоге распакованного архива, но в вашем случае он может быть вложен в другой архив внутри .tgz.

  2. Проблемы с совместимостью версий: CentOS 6.6 представляет собой устаревшую версию, и некоторые пакеты могут не поддерживаться должным образом. Это может повлиять на возможность загрузки и установки расширений.

  3. Ошибки в кэше PECL: Возможны повреждения кэша PECL, что может мешать корректной загрузке файлов.

Решение проблемы

Существует несколько способов решения данной проблемы:

  1. Проверка целостности архива: Проверьте контрольную сумму скачанного архива .tgz и убедитесь, что файл не повреждён. Выполните следующую команду:

    md5sum /root/tmp/pear/cache/zmq-1.1.2.tgz

    Сравните полученное значение с ожидаемым. Если значения различаются, удалите файл и попробуйте загрузить его снова.

  2. Параметр -vv для более подробного вывода: Вы можете использовать команду с добавлением параметра -vv, чтобы получить более детальную информацию:

    sudo pecl install -vv zmq-beta

    Это поможет вам определить, откуда был загружен файл и какую именно ошибку выдаёт система.

  3. Ручная загрузка и установка:

    • Скачайте архив напрямую с официального сайта PECL.
    • Извлеките содержимое архива с помощью команды:
      tar -xzf zmq-1.1.2.tgz
    • Перейдите в директорию с распакованным архивом:
      cd zmq-1.1.2
    • Установите пакет с помощью команды:
      sudo pear install -O zmq-1.1.2.tar

    Этот процесс позволяет избежать проблем, связанных с удалёнными загрузками через pecl, что может быть полезно, если структура архива была нарушена.

  4. Обновление PECL и PHP: Убедитесь, что ваша версия PECL обновлена. Вы можете это сделать с помощью команды:

    sudo pear upgrade PEAR

    Также рассмотрите возможность обновления PHP и связанных библиотек до более новых версий, если это допустимо в вашей среде.

Заключение

Ошибка "неверный архив пакета" может быть вызвана различными факторами, начиная от повреждения архива и заканчивая проблемами с совместимостью. Устранение этой проблемы зачастую требует ручной установки и проверки структуры архивов. Следование вышеописанным шагам поможет вам успешно установить расширение ZMQ на вашей системе.

Оцените материал
Добавить комментарий

Капча загружается...