PHPUnit , PEAR 升级错误

标签 php ubuntu phpunit pear

注意:我已阅读关于此问题的所有问题

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 升级 PEAR 时出现此错误

PHP Fatal error:  Call to undefined method PEAR_Registry::packageinfo() in /usr/share/php/PEAR/Dependency2.php on line 687

我不确定是什么问题?

额外的

(命令:结果)

/usr/bin/pear config-get php_dir : /usr/share/php

配置文件(php.ini)路径(在 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 :调用/usr/share/php/PEAR/Dependency2.php 中的未定义方法 PEAR_Registry::packageinfo() 第 687 行

PEAR 版本:1.9.2 和 php-pear 安装包。

最佳答案

PEAR 1.9.2 已过时且损坏,无法使用较新的 pear 服务器基础架构进行修复。

我不知道为什么发行版仍然坚持使用刚刚损坏的东西:)

Install a new pear via go-pear.phar并确保你有 pear version 1.9.4 然后强制 pear 忽略它的旧缓存文件使用

sudo pear install --force --alldeps phpunit/phpunit

摆脱旧 pear :

sudo apt-get purge php5-pear

现在

which pear

应该导致找不到命令。如果它仍然存在,请删除/usr/share/php 中的二进制文件和关联的 php 类。

根据您的控制台历史记录,我会说您没有使用 sudo 权限安装新 pear,因此它位于/home/或/usr/local/而不是在默认的系统位置。

只要你不在乎

  • 摆脱旧 pear
  • 将您的 php.ini include_path 更改为新的 pear 安装位置

关于PHPUnit , PEAR 升级错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949963/

相关文章:

unit-testing - 单元测试 - 使用真实值还是模拟?

testing - 使用 TDD Laravel 5.6 发送电子邮件

php - 如何 mock 模拟内部方法

PHP - 使用 var_dump 时 SQL 查询返回 array(0) { }

php - 在 WordPress 选项中列出带有复选框的类别?

php - 使用 AJAX 加载 PHP 页面是好习惯吗?

linux - docker : invalid reference format | error | cloud vm ubuntu

php - 如何将csv文件数据插入数据库?

node.js - Beaglebone (ARM) 上的串口 Node 错误

Ubuntu Bash 不理解的 Bash 脚本