15

我正在尝试在 Ubuntu 10.04 中安装 PHPUnit,但我收到这些错误消息

sudo pear install -a pear.phpunit.de/PHPUnit
Duplicate package channel://pear.phpunit.de/File_Iterator-1.3.3 found
Duplicate package channel://pear.phpunit.de/File_Iterator-1.3.2 found
install failed

我尝试重新安装 PEAR,升级它;更新了 PEAR 和 PHPUnit 频道;清除了 PEAR 的缓存但仍然没有运气,我不断收到同样的错误。

有没有人有同样的问题并且知道如何解决它?

谢谢你。

4

4 回答 4

26

是的,Dex 指出,但我想我也会把它作为答案。

不知道为什么你需要 sudo (取自 edorian 的回答),这就是我所做的。

pear clear-cache
pear install phpunit/File_Iterator
pear install phpunit/Text_Template
pear install --force --alldeps pear.phpunit.de/PHPUnit

基本上,文件迭代器和文本模板是我得到重复的两个,所以这些是我必须单独安装的,所以在进行 phpunit 安装时它不会失败。

于 2012-10-25T21:43:50.200 回答
2

我也遇到了这个问题,因为工作的服务器仍在 PHP 5.2 上,并且直接从 PEAR 安装 PHPUnit 选择了一些与 PHP 5.2 不兼容的包的错误版本。

为了修复安装:

1)我首先从频道 phpunit卸载了所有软件包。

2)接下来我安装了冲突包的正确版本

pear install pear.phpunit.de/File_Iterator-1.3.2
pear install pear.phpunit.de/Text_Template-1.1.2
pear install pear.phpunit.de/PHP_Timer-1.0.2

3)接下来我可以安装 phpunit

[root@DanielGarcia ~]# pear install pear.phpunit.de/phpunit
Did not download optional dependencies: pear.phpunit.de/PHP_Invoker, use --alldeps to download automatically
phpunit/PHPUnit can optionally use package "pear.phpunit.de/PHP_Invoker" (version >= 1.1.0)
downloading PHPUnit-3.6.12.tgz ...
Starting to download PHPUnit-3.6.12.tgz (120,240 bytes)
..........................done: 120,240 bytes
downloading PHP_CodeCoverage-1.1.4.tgz ...
Starting to download PHP_CodeCoverage-1.1.4.tgz (132,781 bytes)
...done: 132,781 bytes
downloading PHPUnit_MockObject-1.1.1.tgz ...
Starting to download PHPUnit_MockObject-1.1.1.tgz (19,910 bytes)
...done: 19,910 bytes
downloading PHP_TokenStream-1.1.4.tgz ...
Starting to download PHP_TokenStream-1.1.4.tgz (9,877 bytes)
...done: 9,877 bytes
install ok: channel://pear.phpunit.de/PHPUnit_MockObject-1.1.1
install ok: channel://pear.phpunit.de/PHP_TokenStream-1.1.4
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-1.1.4
install ok: channel://pear.phpunit.de/PHPUnit-3.6.12**
于 2012-12-19T13:55:02.713 回答
2

我在使用 Ubuntu-10.04 时遇到了同样的问题。与 PHP 5.3.2 兼容的 PHPUnit 版本是 3.6。这就是造成问题的原因。我通过安装所有依赖项的确切版本来修复它。以下是我们需要的包:

  • PHPUnit
  • File_Iterator-1.3.2
  • PHP_Timer-1.0.3
  • PHP_TokenStream-1.1.4
  • PHPUnit_MockObject-1.1.1
  • Text_Template-1.1.2
  • PHP_CodeCoverage

详细说明在这里

于 2013-01-04T16:35:13.543 回答
1

最近有一个导致该错误的包装问题:

要修复它,请尝试:

sudo pear install --force --alldeps pear.phpunit.de/PHPUnit

你可能已经这样做了,但是把它留给其他人:

sudo pear clear-cache

(一旦备份;目前似乎有问题)。

在 bugtracker 上讨论的参考问题:

https://github.com/sebastianbergmann/phpunit/issues/687

和梨中的错误:

https://pear.php.net/bugs/bug.php?id=19650

于 2012-10-24T17:01:52.437 回答