开发者

Issue upgrading to phpunit 3.5.13

I have been using phpunit for a while, starting with 3.5.8, subsequently upgrading to 3.5.10 and now on 3.5.11

I wanted to upgrade to 3.5.13 today using the commands:

pear channel-update pear.phpunit.de pear upgrade phpunit/PHPUnit

Unfortunately pear does upgrade itself only but the upgrade of phpunit fails as seen below. Yes, I am in Administrator mode, so authorizations should not be an issue. I find this all the more strange, as I have performed two successful upgrades previously. Because of this I find it hard to believe it is an issue that is specific to my setup (the development machine is running Windows 7 64Bit).

Has anyone else experienced this issue and can offer a solution?

Output from 'pear upgrade phpunit/PHPUnit':

First run:

>pear upgrade phpunit/PHPUnit
    phpunit/PHPUnit requires PEAR Installer (version >= 1.9.2), installed version is
     1.9.1
    phpunit/PHPUnit can optionally use PHP extension "dbus"
    phpunit/File_Iterator requires PEAR Installer (version >= 1.9.2), installed vers
    ion is 1.9.1
    downloading YAML-1.0.5.tgz ...
    Starting to download YAML-1.0.5.tgz (9,966 bytes)
    .....done: 9,966 bytes
    downloading XML_RPC2-1.0.8.tgz ...
    Starting to download XML_RPC2-1.0.8.tgz (67,063 bytes)
    ...done: 67,063 bytes
    downloading PEAR-1.9.2.tgz ...
    Starting to download PEAR-1.9.2.tgz (295,120 bytes)
    ...done: 295,120 bytes
    downloading Cache_Lite-1.7.9.tgz ...
    Starting to download Cache_Lite-1.7.9.tgz (30,318 bytes)
    ...done: 30,318 bytes
    downloading Console_Getopt-1.3.1.tgz ...
    Starting to download Console_Getopt-1.3.1.tgz (4,471 bytes)
    ...done: 4,471 bytes
    upgrade ok: channel://pear.symfony-project.com/YAML-1.0.5
    upgrade ok: channel://pear.php.net/Console_Getopt-1.3.1
    upgrade ok: channel://pear.php.net/PEAR-1.9.2
    upgrade ok: channel://pear.php.net/Cache_Lite-1.7.9
    upgrade ok: channel://pear.php.net/XML_RPC2-1.0.8
    PEAR: Optional feature webinstaller available (PEAR's web-based installer)
    PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
    PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)

    PEAR: To install optional features use "pear install pear/PEAR#featurename"

Second Run:

>pear upgrade phpunit/PHPUnit
phpunit/PHPUnit can optionally use PHP extension "dbus"
downloading PHPUnit-3.5.13.tgz ...
Starting to download PHPUnit-3.5.13.tgz (118,553 bytes)
..........................done: 118,553 bytes
could not extract the package.xml file from "C:\Program Files (x86)\Zend\ZendSer
ver\bin\tmp\PHPUnit-3.5.13.tgz" Unable to create directory 'C:/Program/Fil7414.t
mp'
Unable to create path for C:/Program/Fil7414.tmp/package.xml
Download of "phpunit/PHPUnit" succeeded, but it is not a valid package archive
Error: cannot download "phpunit/PHPUnit"
downloading File_Iterator-1.2.6.tgz ...
Starting to download File_Iterator-1.2.6.tgz (3,439 bytes)
...done: 3,439 bytes
could not extract the package.xml file from "C:\Program Files (x86)\Zend\ZendSer
ver\bin\tmp\File_Iterator-1.2.6.tgz" Unable to create directory 'C:/Program/Fil7
675.tmp'
Unable to create path for C:/Program/Fil7675.tmp/package.xml
Download of "phpunit/File_Iterator" succeeded, but it is not a valid package arc
hive
Error: cannot download "phpunit/File_Iterator"
Download failed
upgrade failed

Here is the pear configuration:

C:\Users\Hanno Schupp>pear config-show
PHP Warning:  Module 'Zend Data Cache' already loaded in Unknown on line 0
PHP Warning:  Zend Extension Manager: Cannot load Zend Data Cache module in Unkn
own on line 0
PHP Warning:  Module 'Zend Utils' already loaded in Unknown on line 0
PHP Warning:  Zend Extension Manager: Cannot load Zend Utils module in Unknown o
n line 0
CONFIGURATION (CHANNEL PEAR.PHP.NET):
=====================================
Auto-discover new Channels     auto_discover    <not set>
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy       <not set>
PEAR server [DEPRECATED]       master_server    pear.php.net
Default Channel Mirror         preferred_mirror pear.php.net
Remote Configuration File      remote_config    <not set>
PEAR executables directory     bin_dir          C:\Program Files
                                                (x86)\Zend\ZendServer\bin
PEAR documentation directory   doc_dir          C:\Program Files
                                                (x86)\Zend\ZendServer\bin\docs
PHP extension directory        ext_dir          C:\Program Files
                                                (x86)\Zend\ZendServer\lib\phpext

PEAR directory                 php_dir          C:\Program Files
                                                (x86)\Zend\ZendServer\bin\pear
PEAR Installer cache directory cache_dir        C:\Users\HANNOS~1\AppData\Local\
Temp\pear\cache
PEAR configuration file        cfg_dir          C:\Program Files
directory                                       (x86)\Zend\ZendServer\bin\cfg
PEAR data directory            data_dir         C:\Program Files
                                                (x86)\Zend\ZendServer\bin\data
PEAR Installer download        download_dir     C:\Program Files
directory                                       (x86)\Zend\ZendServer\bin\tmp
PHP CLI/CGI binary             php_bin          C:\Program Files
                                                (x86)\Zend\ZendServer\bin\.\php.
exe
php.ini location               php_ini          <not set>
--program-prefix passed to     php_prefix       <not set>
PHP's ./configure
--program-suffix passed to     php_suffix       <not set>
PHP's ./configure
PEAR Installer temp directory  temp_dir         C:\Program Files
                                                (x86)\Zend\ZendServer\bin\tmp
PEAR test directory            test_dir         C:\Program Files
         开发者_StackOverflow中文版                                       (x86)\Zend\ZendServer\bin\tests
PEAR www files directory       www_dir          C:\Program Files
                                                (x86)\Zend\ZendServer\bin\www
Cache TimeToLive               cache_ttl        3600
Preferred Package State        preferred_state  stable
Unix file mask                 umask            0
Debug Log Level                verbose          1
PEAR password (for             password         <not set>
maintainers)
Signature Handling Program     sig_bin          c:\gnupg\gpg.exe
Signature Key Directory        sig_keydir       C:\Program Files
                                                (x86)\Zend\ZendServer\bin\pearke
ys
Signature Key Id               sig_keyid        <not set>
Package Signature Type         sig_type         gpg
PEAR username (for             username         <not set>
maintainers)
User Configuration File        Filename         C:\Program Files
                                                (x86)\Zend\ZendServer\bin\pear.i
ni
System Configuration File      Filename         C:\Program Files
                                                (x86)\Zend\ZendServer\bin\pearsy
s.ini
enter code here


Update

As @amateur barista and @Tibor have pointed out, you can apply this same fix without modifying your pear.ini by using the following commands:

> pear config-set temp_dir "C:\tmp"
> pear config-set download_dir "C:\tmp"

Original

I had this same issue on my Windows 7 64-bit machine running WampServer.

It seems that PEAR handles the temp_dir and download_dir variables differently. For download_dir it handles spaces in the path correctly, while for temp_dir it becomes FUBAR'd.

Here are the steps to correct:

  1. Open your pear.ini (mine was: C:\Program Files (x86)\WAMP\bin\php\php5.3.4\pear.ini)

    Note: This file is serialize'd so make sure you understand the syntax before changing anything.

  2. Alter the temp_dir and download_dir variables to paths without spaces.

    Example (before):

    s:8:"temp_dir";s:48:"C:\Program Files (x86)\WAMP\bin\php\php5.3.4\tmp";s:12:"download_dir";s:48:"C:\Program Files (x86)\WAMP\bin\php\php5.3.4\tmp"
    

    Example (after):

    s:8:"temp_dir";s:6:"C:\tmp";s:12:"download_dir";s:6:"C:\tmp"
    
  3. All done! Try your install command again.

Presumably, you probably only need to alter one of the paths in pear.ini but this is how I got it working.


The command llnes to modify pear config attributes

pear config-set temp_dir "C:\tmp"
pear config-set download_dir "C:\tmp"


From the error message, Unable to create directory 'C:/Program/Fil7675.tmp', it looks like it's chopping Files off the configured temporary file path. I don't know where PEAR installs on Windows, but it seems like it's trying to create a folder under "C:/Program Files/PEAR" but chops off everything after the space.

Actually, it looks like it's stuffing part of Files into the new path.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜