梨 - 成功了,但它不是一个有效的包

时间:2014-05-20 14:09:58

标签: php ubuntu pecl

在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。但它没有用。我对此没有任何其他线索。如果有人解释问题究竟是什么,那将会非常有用。请帮忙。

5 个答案:

答案 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位版本相同)。

相关问题