How to install an older version of PHPUnit through PEAR?

落爺英雄遲暮 提交于 2019-11-26 12:14:07

问题


I would like to downgrade my installation of PHPUnit 3.4 to 3.3. I\'m just not sure how to do it.

How do I install version 3.3 of PHPUnit on Ubuntu using PEAR?


回答1:


You need to know the exact version number you wish to downgrade to. At the time of writing, the last release you're after is 3.3.17, which can be found out by checking the appropriate PEAR channel.

To downgrade to that particular version execute two commands:

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



回答2:


Note that if you wish to downgrade from a 3.6.x release to 3.5.15 (final stable 3.x release), then you need to uninstall, then reinstall several dependencies manually. Otherwise pear will just force install the latest version of PHPUnit.

Here's how:

(Original instructions from Dusty Reagan's blog: http://dustyreagan.com/downgrade-phpunit-3-6-to-3-5-15/. duplicated to SO in case original link dies for some reason.)

First you need to uninstall PHPUnit 3.6 and all of it’s dependencies.

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

Next install these specific versions of each dependency, in this order, installing PHPUnit-3.5.15 last.

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

Note: You may need to add channel for PHP_CodeCoverage, which doesn't seem to be obligatory for PHPUnit 3.6

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



回答3:


If you get the error Fatal error: Class 'PHP_Token_Stream' not found in /usr/share/pear/PHP/Token/Stream/CachingFactory.php on line 68 you will need to use the following order, so that you get the correct version of 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:


I don't know if it's always possible using PEAR alone.

When I had to downgrade a package before, the old version was no longer available in the channel. I uninstalled the package I wanted to downgrade, downloaded the old version, and installed from the downloaded file.




回答5:


As to downgrading from 3.6.x to 3.5.15, it works fine for me in the following order:

Uninstallation of 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

Installation of 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

I have found the solution HERE.



来源:https://stackoverflow.com/questions/1569012/how-to-install-an-older-version-of-phpunit-through-pear

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!