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

Posted

技术标签:

【中文标题】如何通过 PEAR 安装旧版本的 PHPUnit?【英文标题】:How to install an older version of PHPUnit through PEAR? 【发布时间】:2010-12-06 20:12:49 【问题描述】:

我想将我安装的 phpUnit 3.4 降级到 3.3。我只是不知道该怎么做。

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

正是我所需要的。谢谢! PHPUnit 3.3 需要什么版本的 PHP?你是怎么找到的? 我收到消息:'没有可用于包“pear.phpunit.de/PHPUnit”的版本',该怎么办? 谢谢老兄,这太棒了。【参考方案2】:

请注意,如果您希望从 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

【讨论】:

正如@Maxence 在对另一个答案的评论中提到的那样,如果您在开始尝试安装 pear.symfony-project.com/YAML- 时收到消息“没有可用于包的版本...” 1.0.2,你应该运行pear clear-cache【参考方案3】:

如果您收到错误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

【讨论】:

【参考方案4】:

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

当我之前必须降级软件包时,频道中不再提供旧版本。我卸载了我想降级的包,下载了旧版本,从下载的文件中安装。

【讨论】:

【参考方案5】:

关于从 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。

【讨论】:

以上是关于如何通过 PEAR 安装旧版本的 PHPUnit?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确从梨中删除 phpunit

通过 PEAR 安装 PHPUnit

通过 pear 或 composer 安装 phpUnit

无法通过 PEAR 安装 PHPUnit,需要 PEAR Installer >= 1.9.2,无法从 1.9.0 升级 PEAR

无法卸载旧版本的phpunit

Linux下的PHPUnit 4.0手动到底怎么安装