无法通过 PEAR 安装 PHPUnit,需要 PEAR Installer >= 1.9.2,无法从 1.9.0 升级 PEAR

Posted

技术标签:

【中文标题】无法通过 PEAR 安装 PHPUnit,需要 PEAR Installer >= 1.9.2,无法从 1.9.0 升级 PEAR【英文标题】:Can't install PHPUnit via PEAR, requires PEAR Installer >= 1.9.2, can't upgrade PEAR from 1.9.0 【发布时间】:2011-09-29 14:13:39 【问题描述】:

我阅读了其他 phpUnit 安装问题,但没有任何成功。我的 PEAR 安装发生了什么?

$ sudo pear update-channels
Updating channel "components.ez.no"
Channel "components.ez.no" is up to date
Updating channel "doc.php.net"
Channel "doc.php.net" is up to date
Updating channel "pear.php.net"
Channel "pear.php.net" is up to date
Updating channel "pear.phpunit.de"
Channel "pear.phpunit.de" is up to date
Updating channel "pear.symfony-project.com"
Channel "pear.symfony-project.com" is up to date
Updating channel "pecl.php.net"
Channel "pecl.php.net" is up to date
$ sudo pear upgrade pear
Nothing to upgrade
$ sudo pear install phpunit/PHPUnit
phpunit/PHPUnit requires PEAR Installer (version >= 1.9.2), installed version is 1.9.0
phpunit/PHPUnit can optionally use PHP extension "dbus"
phpunit/DbUnit requires PEAR Installer (version >= 1.9.2), installed version is 1.9.0
phpunit/File_Iterator requires PEAR Installer (version >= 1.9.2), installed version is 1.9.0
phpunit/PHP_CodeCoverage requires PEAR Installer (version >= 1.9.1), installed version is 1.9.0
phpunit/PHP_CodeCoverage requires package "phpunit/File_Iterator" (version >= 1.2.2)
phpunit/PHP_CodeCoverage can optionally use PHP extension "xdebug" (version >= 2.0.5)
phpunit/PHPUnit_MockObject requires PEAR Installer (version >= 1.9.2), installed version is 1.9.0
phpunit/PHPUnit_Selenium requires PEAR Installer (version >= 1.9.2), installed version is 1.9.0
phpunit/PHP_TokenStream requires PEAR Installer (version >= 1.9.1), installed version is 1.9.0
No valid packages found
install failed
$ pear list
Installed packages, channel pear.php.net:
=========================================
Package          Version  State
Archive_Tar      1.3.7    stable
Cache_Lite       1.7.11   stable
Console_Getopt   1.3.1    stable
HTTP_Request2    2.0.0RC1 beta
Net_URL2         0.3.1    beta
PEAR             1.9.3    stable
Structures_Graph 1.0.4    stable
XML_RPC2         1.1.1    stable
XML_Util         1.2.1    stable
greg@ubuntu:~$ pear -V
PEAR Version: 1.9.0
PHP Version: 5.3.6
Zend Engine Version: 2.3.0
Running on: Linux ubuntu 2.6.32-32-generic-pae #62-Ubuntu SMP Wed Apr 20 22:10:33 UTC 2011 i686

pear list 报告安装了 1.9.3,pear -V 报告了 1.9.0!?!

更新尝试了 KingCrunch 的建议。

$ sudo pear install -f pear
[sudo] password for greg: 
downloading PEAR-1.9.3.tgz ...
Starting to download PEAR-1.9.3.tgz (295,774 bytes)
...........................done: 295,774 bytes
install ok: channel://pear.php.net/PEAR-1.9.3
PEAR: Optional feature webinstaller available (PEAR's web-based installer)
PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)
PEAR: To install optional features use "pear install pear/PEAR#featurename"
$ pear -V
PEAR Version: 1.9.0
PHP Version: 5.3.6
Zend Engine Version: 2.3.0
Running on: Linux ubuntu 2.6.32-32-generic-pae #62-Ubuntu SMP Wed Apr 20 22:10:33 UTC 2011 i686

【问题讨论】:

试试sudo pear install -f pear 很遗憾,这不起作用,请参阅我对问题的更新。 (sudo) pear upgrade pear 你的帖子对我提升我的版本很有用,所以感谢你提出这个问题! 【参考方案1】:

你的机器上基本上有 2 个 pear 安装,“pear upgrade”命令更新另一个,而不是它本身。

我假设你运行的 pear 版本是通过 ubuntu 的 apt 安装的。

使用apt 找出它的安装位置(在 Debian/Ubuntu 上):

$ dpkg -L php-pear
...
/usr/share/php/PEAR.php
...
/usr/bin/pear

现在让我们看看 pear 将文件安装到哪里:

$ pear config-get php_dir
/usr/share/php

在我的机器上,它是相同的 - 但可能不是在你的机器上,这就是问题所在。通过设置php_dir 以及bin_dir 来修复它:

$ pear config-set php_dir /usr/share/php
$ pear config-set bin_dir /usr/bin

或者,从http://pear.php.net/go-pear.phar删除ubuntu pear并重新安装

【讨论】:

谢谢你,你是对的。我从源代码安装了 PHP 5.3.6,因此我可以为 nginx 启用 FPM 支持。 $ pear config-get php_dir /etc/php/lib/php @cweiske,我有同样的问题 (***.com/questions/8949963/…) 但pear config-get php_dirdpkg -L php-pear 指向同一个地址。 我如何知道我的 pear 在 Mac OS X 上安装在哪里?这在那里不起作用:dpkg -L php-pear @Steve 我在***.com/q/12538165/467453 上添加了一个问题。我不确定应该在 Mac OS X / MAMP 上设置什么软管 php_dir 和 bin_dir 路径。【参考方案2】:

如果你对梨子部分不成功,看看这个。

wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit

参考:http://phpunit.de/manual/3.7/en/installation.html

您也可以在下载后立即使用 PHAR;

wget https://phar.phpunit.de/phpunit.phar
php phpunit.phar

【讨论】:

以上是关于无法通过 PEAR 安装 PHPUnit,需要 PEAR Installer >= 1.9.2,无法从 1.9.0 升级 PEAR的主要内容,如果未能解决你的问题,请参考以下文章

通过 PEAR 安装 PHPUnit

通过 pear 或 composer 安装 phpUnit

如何正确从梨中删除 phpunit

如何使用 PEAR 正确安装 PHPUnit?

Linux下的PHPUnit 4.0手动到底怎么安装

我无法运行 PHPUnit