如何通过PEAR安装旧版本的PHPUnit?

时间:2009-10-14 21:08:09

标签: php phpunit pear

我想将PHPUnit 3.4的安装降级为3.3。我只是不确定该怎么做。

如何使用PEAR在Ubuntu上安装PHPUnit 3.3版?

5 个答案:

答案 0 :(得分:51)

您需要知道要降级到的确切版本号。在撰写本文时,您所关注的最后一个版本是3.3.17,可以通过checking相应的PEAR频道找到。

要降级到该特定版本,请执行两个命令:

  • pear uninstall phpunit/PHPUnit
  • pear install phpunit/PHPUnit-3.3.17

答案 1 :(得分:22)

请注意,如果您希望从3.6.x版本降级到3.5.15(最终稳定的3.x版本),则需要卸载,然后手动重新安装多个依赖项。否则pear会强制安装最新版本的PHPUnit。

以下是:

(来自Dusty Reagan博客的原始说明:http://dustyreagan.com/downgrade-phpunit-3-6-to-3-5-15/。如果原始链接由于某种原因而死亡,则复制到SO。)

首先,您需要卸载PHPUnit 3.6及其所有依赖项。

sudo pear uninstall phpunit/PHPUnit
sudo pear uninstall phpunit/DbUnit
sudo pear uninstall phpunit/PHP_CodeCoverage
sudo pear uninstall phpunit/File_Iterator
sudo pear uninstall phpunit/PHPUnit_MockObject
sudo pear uninstall phpunit/Text_Template
sudo pear uninstall phpunit/PHP_Timer
sudo pear uninstall phpunit/PHPUnit_Selenium
sudo pear uninstall pear.symfony-project.com/YAML

接下来按顺序安装每个依赖项的这些特定版本,最后安装PHPUnit-3.5.15。

sudo pear install pear.symfony-project.com/YAML-1.0.2
sudo pear install phpunit/PHPUnit_Selenium-1.0.1
sudo pear install phpunit/Text_Template-1.0.0
sudo pear install phpunit/PHPUnit_MockObject-1.0.3
sudo pear install phpunit/PHP_Timer-1.0.0
sudo pear install phpunit/File_Iterator-1.2.3
sudo pear install phpunit/PHP_CodeCoverage-1.0.2
sudo pear install phpunit/DbUnit-1.0.0
sudo pear install phpunit/PHPUnit-3.5.15

注意:您可能需要为PHP_CodeCoverage添加频道,这似乎不是PHPUnit 3.6的必备条件

sudo pear channel-discover components.ez.no
sudo pear install channel://components.ez.no/ConsoleTools-1.6

答案 2 :(得分:6)

如果收到错误Fatal error: Class 'PHP_Token_Stream' not found in /usr/share/pear/PHP/Token/Stream/CachingFactory.php on line 68,则需要使用以下顺序,以便获得正确版本的PHP_TokenStream:

pear uninstall phpunit/PHPUnit
pear uninstall phpunit/DbUnit
pear uninstall phpunit/PHP_CodeCoverage
pear uninstall phpunit/PHP_TokenStream
pear uninstall phpunit/File_Iterator
pear uninstall phpunit/PHP_Timer
pear uninstall phpunit/PHPUnit_MockObject
pear uninstall phpunit/Text_Template
pear uninstall phpunit/PHPUnit_Selenium
pear uninstall pear.symfony-project.com/YAML


pear install pear.symfony-project.com/YAML-1.0.2
pear install phpunit/PHPUnit_Selenium-1.0.1
pear install phpunit/Text_Template-1.0.0
pear install phpunit/PHPUnit_MockObject-1.0.3
pear install phpunit/PHP_Timer-1.0.0
pear install phpunit/File_Iterator-1.2.3
pear install phpunit/PHP_TokenStream-1.0.1
pear install phpunit/PHP_CodeCoverage-1.0.2
pear install phpunit/DbUnit-1.0.0
pear install phpunit/PHPUnit-3.5.15

答案 3 :(得分:1)

我不知道是否总是可以单独使用PEAR。

当我不得不降级包之前,旧版本在频道中不再可用。我卸载了我想要降级的软件包,下载了旧版本,并从下载的文件中安装。

答案 4 :(得分:0)

关于从3.6.x降级到3.5.15,按以下顺序对我工作正常:

卸载3.6

sudo pear uninstall phpunit/PHPUnit_Selenium
sudo pear uninstall phpunit/PHPUnit
sudo pear uninstall phpunit/DbUnit
sudo pear uninstall phpunit/PHP_CodeCoverage
sudo pear uninstall phpunit/PHP_Iterator
sudo pear uninstall phpunit/PHPUnit_MockObject
sudo pear uninstall phpunit/Text_Template
sudo pear uninstall phpunit/PHP_Timer
sudo pear uninstall phpunit/File_Iterator
sudo pear uninstall pear.symfony-project.com/YAML

安装3.5.15

sudo pear install pear.symfony-project.com/YAML-1.0.2
sudo pear install phpunit/PHPUnit_Selenium-1.0.1
sudo pear install phpunit/PHP_Timer-1.0.0
sudo pear install phpunit/Text_Template-1.0.0
sudo pear install phpunit/PHPUnit_MockObject-1.0.3
sudo pear install phpunit/File_Iterator-1.2.3
sudo pear install phpunit/PHP_CodeCoverage-1.0.2
sudo pear install phpunit/DbUnit-1.0.0
sudo pear install phpunit/PHPUnit-3.5.15

我找到了解决方案HERE