tags:

views:

22

answers:

2

I've downloaded the ZIP archive of PHP and extracted it under my profile. I then needed some PEAR packages. go-pear.bat apparently installed PEAR just fine, I just needed to go into the pear.bat file afterwards and adapt the path to php.exe – no big deal and after that it ran.

However, when I try installing something I get the following error:

ERROR: failed to mkdir C:\php5\pear\data\Console_CommandLine\data

Naturally, no write access is allowed in the root directory but I'm a little at a loss to know how exactly PEAR thinks it should install anything in a location that neither exists nor is configured anywhere. PHP currently resides somewhere below H:\ (subst'ed to my profile). All paths I entered during PEAR installation were sane and the only place I can find C:\php5 is in PEAR/go-pear.phar and in the documentation. One of those is something I shouldn't change anyway, I guess and the other thing is hardly relevant for the program itself.

Now, I probably could go in and make C:\php5 a junction/symlink to the directory where PHP lies currently or actually install it in that location – both things I'd rather avoid since this was originally just intended for a little test of something.

I since looked into pear help install and apparently I can use -P or -R so set some paths. The exact difference between those is still unclear to me but it won't hurt to try them, I guess. Somehow the results were ... unexpected:

-P H:\Downloads\php\PEAR resulted in the fun error (among others)

ERROR: failed to mkdir C:\Downloads\php\PEAR\php5\pear\data\Console_CommandLine\data

while -R using the same path (apparently -R dictates where downloads are stored, since that worked before I guess I shouldn't touch this) resulted in even more fun:

download directory "C:\Downloads\php\PEAR\Users\JOHANN~1\AppData\Local\Temp\pear\download" is not writeable. Change download_dir config variable to a writeable dir

By now I guess both C:\ and php5 are somewhere hardcoded for no apparent reason (my environment variables also contain nothing of that sort) so I'll go digging again, this time looking for shorter string and therefore longer result lists.

But if anyone has an idea about this in the meantime, this might be helpful.

+1  A: 

Look at the config-... parameters of the PEAR command:

config-create          Create a Default configuration file
config-get             Show One Setting
config-help            Show Information About Setting
config-set             Change Setting
config-show            Show All Settings

I presume C:\php5 is the builtin default directory when you don't set another one.

Álvaro G. Vicario
Looks promising, `config-show` yields quite a lot settings that point to `C:\php5\something`. Now I just need to figure out how I can tell PEAR to use a sane location for the configuration file. Expecting a *user* config file in `C:\Windows` is probably the weirdest thing I've seen in a while.
Joey
Ok, solved it now. Running `pear` from a subdirectory of `C:\` and giving a path on the `C:` drive to the `-P` option worked, apparently.
Joey
+1  A: 

you can specify the config file via

pear -c /path/to/config/file $command
cweiske