在一个pecl包安装过程中,我得到了错误,
Download of "pecl/pecl_http" succeeded, but it is not a valid package archive Error: cannot download "pecl/pecl_http"
所有包都会出现这个错误。 所以我尝试了这里给出的解决scheme, http://cweiske.de/tagebuch/pear-php-5.5.htm 。 但它不工作。 而我对此没有任何其他的线索。 如果有人解释究竟是什么问题,这将是非常有帮助的。 请帮忙。
这个bug通常影响从Ubuntu 12.04 LTS升级到Ubuntu 14.04 LTS的系统。
对于php5-5.5.9有一个解决方法 ,在Launchpad上通过kolAflash进行评论。
解决方法包含一个小的错字( 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 。
似乎梨不能从tgz档案安装。 使用-Z,–nocompress选项下载时,必须显式请求未压缩的文件。
所以,试试sudo pear install -Z
包
最好的解决方案是升级pear安装程序使用的PEAR的Archive软件包,然后在安装新软件包或升级现有软件包时不需要显式请求未压缩的文件。
$ sudo pear upgrade -Z Archive_Tar
您不必为其他任何软件包执行此操作,只要您先为Archive_Tar执行此操作即可。
发生这个问题是因为Ubuntu将pack / unpack格式化字符串稍微改了一下,以便将它们对准Perl的行为,从而打破了向后兼容性。 PEAR在Archive_Tar的后续版本中修正了这个问题(Ubuntu不断在PHP的每个后续版本中进行这些更改…)。 因此,pear安装程序需要比1.3.11更高版本的Archive_Tar – 详细信息请参见https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1434099 。
在每次“软件升级”影响到Ubuntu所提供的PHP之后,您需要执行此操作,因为升级会回滚您在本地安装的Archive_Tar的版本。 它还回滚Console_Getopt,XML_Util和PEAR包。
我有这个问题,并最终得到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
看起来这是一个错误,并与一些特定版本的软件相关联。 快速的谷歌搜索找到了一个像2011年这样的问题的cPanel论坛的链接,还有相当新鲜的https://bugs.php.net/bug.php?id=67075 。 考虑改变从32位系统的PHP版本/切换(例如,它是可重现的32位新鲜的Ubuntu 14.04,不能与64位版本相同)。