【问题标题】:unable to install latest phpUnit in Ubuntu 10.04无法在 Ubuntu 10.04 中安装最新的 phpUnit
【发布时间】:2012-10-12 23:50:29
【问题描述】:

我正在尝试在 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 的缓存但仍然没有运气,我一直收到同样的错误。

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

谢谢。

【问题讨论】:

  • 这里有同样的问题。任何解决方案都会很棒。

标签: ubuntu phpunit pear


【解决方案1】:

是的,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 安装时它不会失败。

【讨论】:

  • Jayson,您是要安装最新版本的 PHPUnit 还是旧版本?我问是因为在我的机器上,PEAR 安装了 PHPUnit 3.6(无论如何这对我来说很好),我认为这是因为我安装了 File_Iterator-1.3.2,它对应于旧版本的 PHPUnit。
  • 就我而言,当时我正在安装最新版本的 PHPUnit,但实际上我需要一个 3.6.x 版本……这导致了一些其他必须解决的问题,呵呵.话虽如此,我第一次安装时出现了重复包错误,所以我认为这不是由以前安装的东西引起的。
  • 安装损坏的依赖项完全可以解决问题。谢谢!
  • 这个对我也很有效,经过多次“头脑,碰壁”。哈哈!谢谢!
【解决方案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**

【讨论】:

    【解决方案3】:

    我在使用 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

    详细说明here

    【讨论】:

    • 太棒了!是的,我注意到 Ubuntu Lucid 附带了那个 PHP 版本,但我正在努力强制使用以前版本的 PHPUnit。感谢您的链接。为它添加书签。
    【解决方案4】:

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

    尝试修复它:

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

    您可能已经这样做了,但要留给其他人:

    sudo pear clear-cache
    

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

    在 bugtracker 上讨论过的参考问题:

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

    还有 pear 中的 bug:

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

    【讨论】:

    • 谢谢。我无法安装最新版本或旧版本。我现在所做的是手动安装任何引发错误的依赖项,然后安装 phpUnit 包。
    猜你喜欢
    • 2013-02-23
    • 1970-01-01
    • 2011-04-19
    • 2011-10-31
    • 2013-08-25
    • 2012-03-17
    • 2011-08-30
    • 2012-06-24
    • 2011-06-10
    相关资源
    最近更新 更多