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

Str*_*ger 15 php ubuntu pecl

在pecl包安装期间,我收到了错误,

Download of "pecl/pecl_http" succeeded, but it is not a valid package archive
Error: cannot download "pecl/pecl_http"
Run Code Online (Sandbox Code Playgroud)

所有包都会出现此错误.所以我尝试了这里给出的解决方案, http://cweiske.de/tagebuch/pear-php-5.5.htm.但它没有用.我对此没有任何其他线索.如果有人解释问题究竟是什么,那将会非常有用.请帮忙.

Wer*_*ner 23

此错误通常会影响从Ubuntu 12.04 LTS升级到Ubuntu 14.04 LTS的系统.

Launchpad上有一个由kolAflash评论的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
Run Code Online (Sandbox Code Playgroud)

这种解决方法的所有功劳显然都归功于kolAflash.


小智 15

似乎Pear无法从tgz存档安装.使用-Z, - nocompress选项下载时,必须显式请求未压缩的文件.

所以,试试sudo pear install -Z


kgu*_*est 9

对此最好的解决方案是升级梨安装程序使用的PEAR的Archive包,之后在安装新的或升级现有的包时,您不需要显式请求未压缩的文件.

$ sudo pear upgrade -Z Archive_Tar
Run Code Online (Sandbox Code Playgroud)

只要您先为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包.