How to install an older version of PHPUnit through PEAR?

前端 未结 5 1650
栀梦
栀梦 2020-12-01 02:36

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?

相关标签:
5条回答
  • 2020-12-01 03:16

    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
    
    0 讨论(0)
  • 2020-12-01 03:17

    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
    0 讨论(0)
  • 2020-12-01 03:18

    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
    
    0 讨论(0)
  • 2020-12-01 03:25

    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.

    0 讨论(0)
  • 2020-12-01 03:30

    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.

    0 讨论(0)
提交回复
热议问题