注意:我已阅读有关此问题的所有问题
在我的系统上安装并配置了PEAR(Ubuntu 11.10 + Apache / 2.2.20)。因为
<?php
require_once 'System.php';
var_dump(class_exists('System', false));
?>
返回:
bool(true)
(PEAR Manual : Checking if PEAR works Step 4)
当我尝试使用phpunit时,我收到此错误。
PHP Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/bin/phpunit on line 38
PHP Fatal error: require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='.:/usr/share/php:/usr/share/pear') in /usr/bin/phpunit on line 38
在此错误之后我决定安装它
sudo /usr/bin/pear install phpunit/PHP_CodeCoverage
但我得到了
phpunit/PHP_CodeCoverage requires PEAR Installer (version >= 1.9.4), installed version is 1.9.2
使用sudo pear upgrade
PHP Fatal error: Call to undefined method PEAR_Registry::packageinfo() in /usr/share/php/PEAR/Dependency2.php on line 687
我不确定是什么问题?
其他
(command
:result
)
/usr/bin/pear config-get php_dir
:/usr/share/php
Configuration File (php.ini) Path (on phpinfo();)
:/etc/php5/apache2
php -c /etc/php5/apache2/php.ini -r 'echo get_include_path()."\n";'
:.:/usr/share/php
pear upgrade pear
:PHP Fatal error: Call to undefined method PEAR_Registry::packageinfo() in /usr/share/php/PEAR/Dependency2.php on line 687
PEAR版本:安装了1.9.2和php-pear
包。
答案 0 :(得分:9)
PEAR 1.9.2已经过时,无法通过更新的梨形服务器基础设施进行维修。
我不知道为什么发行版仍然坚持刚刚破坏的东西:)
Install a new pear via go-pear.phar
并确保您拥有pear version 1.9.4
,然后强制梨使用
sudo pear install --force --alldeps phpunit/phpunit
sudo apt-get purge php5-pear
现在
which pear
应导致找不到命令。如果它仍然存在删除/ usr / share / php中的二进制文件和相关的php类。
从您的控制台历史记录中我会说您没有安装具有 sudo
权限的新梨,因此它位于/ home /或/ usr / local /而不是默认系统位置。
只要你
就没关系答案 1 :(得分:3)
对特定环境进行故障排除可能很困难......但是,这里有......
在尝试使用像apt-get或yum这样的包管理器时,我没有使用实际的pear.phpunit.de
频道来安装PHPUnit,尤其是。首先,您需要确保您的梨装置是最新的。从包管理器中删除现有安装:
然后确保删除可执行二进制文件(如果它仍然存在)。这可能是 / usr / bin / pear ,但您可能需要根据您的环境修改路径:
接下来通过下载go-pear.phar并执行它来安装新梨。 确保使用sudo权限(或以root身份)安装它,以便将其安装在正确的位置:
然后,您可以通过执行下一个命令来验证pear的工作原理。如果是这样,您将获得一个命令列表:
最后,升级梨(以防万一 - 你毕竟使用go-pear.phar获得最新版本)。在此之后,确保使用实际的pear.phpunit.de通道来安装PHPUnit:
这对我来说效果很好......希望它有所帮助。
<强>更新强>
要获得PHPUnit的所有功能,您可能还需要执行以下操作:
你认为 - alldeps 会涵盖这个但是......
更新2
此方法不适用于当前的Ubuntu 11.10,因为它 安装破碎的梨安装程序1.9.2 ...
对于使用go-pear.phar安装方法的持续问题,这是另一种方法...
接下来,告诉PEAR更新自己的频道。
然后,告诉PEAR将自己升级到最新版本。
最后,安装上面禁止的PHPUnit ......
答案 2 :(得分:1)
我通过做manual installation让我的工作。
答案 3 :(得分:1)
我刚刚升级了我的Ubuntu系统,我的PEAR 1.9.4稳定了。运行
sudo apt-get update
sudo apt-get upgrade
让您的Ubuntu同步并保持最新状态。
如果您仍在努力使用上述版本,我的建议是安装与您的phpunit兼容的PHP_CodeCoverage的早期版本。在我升级系统之前,我使用PEAR 1.9.2安装了phpunit-3.5.15(稳定版),PHP_CodeCoverage 1.0.5(稳定版)。如果这是你的phpunit版本
sudo pear install PHP_CodeCoverage-1.0.5
应该使用PEAR 1.9.2安装PHP_CodeCoverage。
我希望这会有所帮助,让你的单元测试运行。