Most likely your problem isn't the file missing/permissions etc. But the fact you are using CygWin and Windows, set PATH may not function the same way as it would on a real Linux system.
Take a closer look into what the ./pear command is actually doing:
Bottom of the code you'll notice the call for pearmage.php:
exec $PHP -C -q $INCARG -d output_buffering=1 -d variables_order=EGPCS \
-d open_basedir="" -d safe_mode=0 -d register_argc_argv="On" \
-d auto_prepend_file="" -d auto_append_file="" \
$INCDIR/pearmage.php -c $PEAR_INI "$@
Validate your include_path in PHP with <?php phpinfo(); ?> and ensure it will include the downloader/pearlib/php/; directory.
Related StackOverflow Question:
For reference of the file missing in question:
Ultimately as Fabian Blechschmidt mentioned, Simply copying the new codebase over the files will be much easier than trying to go through the pear channels. DB Upgrades will trigger after the new files are copied and a front/backend request is made.
Also consider setting up a Virtual Machine on a true Linux stack if your getting down to the Bash/Perl level of things.
/cygdrive/c/Apache24/htdocs/downloader/pearlib/php/pearmage.phpexists & has correct permissions, yes? – benmarks Aug 19 '13 at 20:57