【发布时间】:2011-12-18 21:53:50
【问题描述】:
PHPUnit 的当前版本是 3.6,但在我更新代码之前,我需要改用 3.5.15。我在尝试安装 3.5.15 时遇到了很多麻烦。
我从 Zend Server 的全新安装开始,它只安装了几个基本的 PEAR 包。我发现 pear.phpunit.de 和 pear.symfony-project.com。然后我尝试从一个 URL 安装 3.5.15,但它失败了:
# pear install http://pear.phpunit.de/get/PHPUnit-3.5.15.tgz
downloading PHPUnit-3.5.15.tgz ...
Duplicate package channel://pear.phpunit.de/PHPUnit-3.5.15 found
Duplicate package channel://pear.phpunit.de/PHPUnit-3.6.0 found
install failed
接下来,我尝试从下载的文件安装,但同样失败:
# pear install ~/Desktop/PHPUnit-3.5.15.tgz
Duplicate package channel://pear.phpunit.de/PHPUnit-3.5.15 found
Duplicate package channel://pear.phpunit.de/PHPUnit-3.6.0 found
install failed
然后直接从 PEAR ...安装 3.6 而不是我要求的!
# pear install phpunit/PHPUnit-3.5.15
phpunit/PHPUnit can optionally use package "pear/XML_RPC2"
phpunit/PHPUnit can optionally use PHP extension "dbus"
phpunit/DbUnit requires package "phpunit/PHPUnit" (version >= 3.6.0), downloaded version is 3.5.15
phpunit/PHPUnit requires package "phpunit/DbUnit" (version >= 1.0.0)
phpunit/PHPUnit can optionally use package "phpunit/PHP_Invoker" (version >= 1.0.0)
downloading File_Iterator-1.3.0.tgz ...
downloading Text_Template-1.1.1.tgz ...
downloading PHP_CodeCoverage-1.1.0.tgz ...
downloading PHP_Timer-1.0.2.tgz ...
downloading PHPUnit_MockObject-1.1.0.tgz ...
downloading PHPUnit_Selenium-1.1.0.tgz ...
downloading YAML-1.0.6.tgz ...
downloading PHPUnit-3.6.0.tgz ...
downloading PHP_TokenStream-1.1.0.tgz ...
install ok: channel://pear.phpunit.de/File_Iterator-1.3.0
install ok: channel://pear.phpunit.de/Text_Template-1.1.1
install ok: channel://pear.phpunit.de/PHP_Timer-1.0.2
install ok: channel://pear.symfony-project.com/YAML-1.0.6
install ok: channel://pear.phpunit.de/PHP_TokenStream-1.1.0
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-1.1.0
install ok: channel://pear.phpunit.de/PHPUnit_MockObject-1.1.0
install ok: channel://pear.phpunit.de/PHPUnit-3.6.0
install ok: channel://pear.phpunit.de/PHPUnit_Selenium-1.1.0
即使使用 -f 选项,尝试强制安装我要求的版本,也不会改变任何内容。
如何安装 3.5.15?
【问题讨论】:
-
我部分地想通了。 PHPUnit-3.5.15 需要 DbUnit,但最新版本的 DbUnit (1.1.0) 需要 PHPUnit-3.6。所以这就是为什么当我安装 PHPUnit 3.5.15 时,会安装 3.6。我通过专门安装 DbUnit-1.0.3 解决了这个问题。