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:
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.
Alter the
temp_dir
anddownload_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"
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.
精彩评论