This is from a relatively clean install of Gentoo (a couple of weeks old). Having traced the PHP code myself to reveal the actually useful error message, I ended up with this: ERROR: Unknown channel "pear.phpunit.de" It seems that the ebuild needs to add that channel before installation can continue: $ pear channel-discover pear.phpunit.de Once that command has been run, the ebuild works fine Reproducible: Always Steps to Reproduce: 1. Ensure that pear.phpunit.de is not registered in PEAR 2. emerge -v dev-php5/phpunit Actual Results: * * ERROR: dev-php5/phpunit-2.3.6 failed. * Call stack: * ebuild.sh, line 1701: Called dyn_install * ebuild.sh, line 1138: Called qa_call 'src_install' * ebuild.sh, line 44: Called src_install * ebuild.sh, line 1383: Called php-pear-lib-r1_src_install * php-pear-lib-r1.eclass, line 50: Called die * The specific snippet of code: * pear -d php_bin="${PHP_BIN}" install --force --loose --nodeps --offline --packagingroot="${D}" "${S}/package.xml" > /dev/null || die "Unable to install PEAR package" * The die message: * Unable to install PEAR package * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/dev-php5/phpunit-2.3.6/temp/build.log'. * Expected Results: Ebuild installs successfully
Re-emerge PEAR-PEAR.
Just encountered this problem on a different machine and tried this solution and phpunit still does not install. At the end of the PEAR-PEAR install output is the following which looks very suspicious: reading directory /var/cache/pear 0 cache entries cleared Channel "pear.php.net" is already initialized Updating channel "pear.php.net" ERROR: downloaded channel definition file for channel "pear.phpdb.org" from channel "pear.php.net" Channel "pecl.php.net" is already initialized Updating channel "pecl.php.net" ERROR: downloaded channel definition file for channel "pear.phpdb.org" from channel "pecl.php.net" Channel "components.ez.no" is already initialized Updating channel "components.ez.no" ERROR: downloaded channel definition file for channel "pear.phpdb.org" from channel "components.ez.no" Channel "pear.phpdb.org" is already initialized Updating channel "pear.phpdb.org" Update of Channel "pear.phpdb.org" succeeded Channel "pear.phing.info" is already initialized Updating channel "pear.phing.info" ERROR: downloaded channel definition file for channel "pear.phpdb.org" from channel "pear.phing.info" Discovery of channel "pear.symfony-project.com" failed (channel-add: Channel "pear.phpdb.org" exists, use channel-update to update entry) Cannot open pear.symfony-project.com Discovery of channel "pear.phpunit.de" failed (channel-add: Channel "pear.phpdb.org" exists, use channel-update to update entry) Cannot open pear.phpunit.de Discovery of channel "pear.php-baustelle.de" failed (channel-add: Channel "pear.phpdb.org" exists, use channel-update to update entry) Cannot open pear.php-baustelle.de Discovery of channel "pear.zeronotice.org" failed (channel-add: Channel "pear.phpdb.org" exists, use channel-update to update entry) Cannot open pear.zeronotice.org Discovery of channel "pear.phpontrax.com" failed (channel-add: Channel "pear.phpdb.org" exists, use channel-update to update entry) Cannot open pear.phpontrax.com Discovery of channel "pear.agavi.org" failed (channel-add: Channel "pear.phpdb.org" exists, use channel-update to update entry) Cannot open pear.agavi.org Looks like it might be something a bit screwy with my setup, but I figured I'd post it here anyway for completeness.
Well as noted above, it works here; unmerge PEAR-PEAR, wipe the cache, re-emerge it. And yes, you _must_ be online or this will fail miserably. Cannot fix something that we can't reproduce, sorry.