在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。但它没有用。我对此没有任何其他线索。如果有人解释问题究竟是什么,那将会非常有用。请帮忙。
答案 0 :(得分:23)
此错误通常会影响从Ubuntu 12.04 LTS升级到Ubuntu 14.04 LTS的系统。
由kolAflash Launchpad评论的php5-5.5.9有一个解决方法。
变通方法包含一个小错字(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 。
答案 1 :(得分:15)
似乎Pear无法从tgz存档安装。 使用 -Z, - nocompress 选项下载时,必须显式请求未压缩的文件。
因此,请尝试sudo pear install -Z
包
答案 2 :(得分:9)
最佳解决方案是升级梨子安装程序使用的PEAR的Archive包,之后在安装新软件包或升级现有软件包时,您无需显式请求未压缩文件。
$ sudo pear upgrade -Z Archive_Tar
只要您首先为Archive_Tar执行此操作,就不必为任何其他包执行此操作。
发生此问题是因为Ubuntu稍微更改了pack / unpack格式字符串以使它们与Perl行为对齐,从而破坏了向后兼容性。 PEAR在Archive_Tar的后续版本中修复了这个问题(Ubuntu继续在每个连续版本的PHP中进行这些更改......)。因此,pear安装程序需要更高版本的Archive_Tar而不是1.3.11 - 详细信息位于https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1434099。
在每次“软件升级”影响Ubuntu提供的PHP之后,您需要执行此操作,因为升级会回滚您在本地安装的Archive_Tar版本。它还会回滚Console_Getopt,XML_Util和PEAR包。
答案 3 :(得分:3)
我遇到了这个问题,并最终通过
让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
答案 4 :(得分:0)
看起来这是一个错误,并与某些特定版本的软件相关联。快速谷歌搜索找到了一个链接到cpanel论坛与2011年这样的问题,并且相当新鲜https://bugs.php.net/bug.php?id=67075。考虑更改php版本/从32位系统切换(例如,它可以使用32位全新的Ubuntu 14.04重现,并且不能与64位版本相同)。