9

我尝试安装软件包from pear.phpqatools.org/phpqatools

首先命令pear config-get php_dir返回D:\Users\xampp\php\pear ,我无权在C驱动器上安装。

然后根据http://phpqatools.org/的说明 输入:

pear config-set auto_discover 1
pear install pear.phpqatools.org/phpqatools

我也尝试过输入: pear install --alldeps pear.phpqatools.org/phpqatools

但所有这些尝试的结果都是失败......

这是一个日志:

Package "pear.phpqatools.org/phpqatools" dependency "pear.phpunit.de/PHPUnit" has no releases
Unknown remote channel: pear.pdepend.org
Unknown remote channel: pear.phpmd.org
Unknown remote channel: components.ez.no
Package "pear.phpunit.de/PHPUnit_SkeletonGenerator" dependency "pear.phpunit.de/Text_Template" has
no releases
Package "pear.phpunit.de/phpcpd" dependency "pear.phpunit.de/File_Iterator" has no releases
Package "pear.phpunit.de/phpcpd" dependency "pear.phpunit.de/PHP_Timer" has no releases
Unknown remote channel: components.ez.no
Package "pear.phpunit.de/phploc" dependency "pear.phpunit.de/File_Iterator" has no releases
Unknown remote channel: components.ez.no
Package "pear.phpqatools.org/PHP_CodeBrowser" dependency "pear.phpunit.de/File_Iterator" has no rel
eases
Failed to download pear/Text_Highlighter within preferred state "stable", latest release is version
 0.7.3, stability "beta", use "channel://pear.php.net/Text_Highlighter-0.7.3" to install
Package "pear.phpqatools.org/PHP_CodeBrowser" dependency "pear.phpunit.de/PHPUnit" has no releases
Package "pear.phpqatools.org/PHP_CodeBrowser" dependency "pear.php.net/PhpDocumentor" has no releas
es
Package "pear.php.net/PHP_CodeSniffer" dependency "pear.phpunit.de/PHP_Timer" has no releases
Package "pear.phpunit.de/DbUnit" dependency "pear.phpunit.de/PHPUnit" has no releases
Package "pear.phpunit.de/DbUnit" dependency "pear.symfony-project.com/YAML" has no releases
WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"
WARNING: "pear/Auth_SASL" is deprecated in favor of "pear/Auth_SASL2"
phpqatools/phpqatools requires package "channel://pear.pdepend.org/PHP_Depend"
phpqatools/phpqatools requires package "channel://pear.phpmd.org/PHP_PMD"
phpunit/PHPUnit_SkeletonGenerator requires package "channel://components.ez.no/ConsoleTools" (versi
on >= 1.6)
phpunit/phpcpd requires package "channel://components.ez.no/ConsoleTools" (version >= 1.6)
phpunit/phploc requires package "channel://components.ez.no/ConsoleTools" (version >= 1.6)
phpunit/phploc can optionally use PHP extension "bytekit"
phpqatools/PHP_CodeBrowser can optionally use package "pear/Text_Highlighter" (version >= 0.7.1)
downloading PHP_CodeBrowser-1.0.3.tgz ...
Starting to download PHP_CodeBrowser-1.0.3.tgz (172,253 bytes)
.....................................done: 172,253 bytes
downloading PHP_CodeSniffer-1.3.6.tgz ...
Starting to download PHP_CodeSniffer-1.3.6.tgz (352,931 bytes)
...done: 352,931 bytes
downloading DbUnit-1.1.2.tgz ...
Starting to download DbUnit-1.1.2.tgz (41,895 bytes)
...done: 41,895 bytes
downloading Console_CommandLine-1.1.3.tgz ...
Starting to download Console_CommandLine-1.1.3.tgz (38,507 bytes)
...done: 38,507 bytes
downloading Log-1.12.7.tgz ...
Starting to download Log-1.12.7.tgz (46,898 bytes)
...done: 46,898 bytes
downloading DB-1.7.14.tgz ...
Starting to download DB-1.7.14.tgz (133,103 bytes)
...done: 133,103 bytes
downloading MDB2-2.4.1.tgz ...
Starting to download MDB2-2.4.1.tgz (119,790 bytes)
...done: 119,790 bytes
downloading Mail-1.2.0.tgz ...
Starting to download Mail-1.2.0.tgz (23,214 bytes)
...done: 23,214 bytes
downloading Net_SMTP-1.6.1.tgz ...
Starting to download Net_SMTP-1.6.1.tgz (13,164 bytes)
...done: 13,164 bytes
ERROR: failed to mkdir C:\php\pear\tests\PHP_CodeSniffer\CodeSniffer\Core\File
ERROR: failed to mkdir C:\php\pear\docs\DbUnit\Samples\BankAccountDB\_files
ERROR: failed to mkdir C:\php\pear\data\Console_CommandLine\data
ERROR: failed to mkdir C:\php\pear\docs\Log\docs
ERROR: failed to mkdir C:\php\pear\docs\DB\doc
ERROR: failed to mkdir C:\php\pear\docs\MDB2\docs\examples
ERROR: failed to mkdir C:\php\pear\tests\Mail\tests
ERROR: failed to mkdir C:\php\pear\docs\Net_SMTP\docs
ERROR: failed to mkdir C:\php\pear\data\PHP_CodeBrowser\templates\css

我不明白为什么 install 会尝试 mkdir onC:\php\pear\以及如何解决未知删除通道的问题...

4

5 回答 5

11

我发现使用 Xamp 时让 pear 工作的唯一方法是删除文件夹并从头开始重新安装。pear 客户端(很长一段时间以来都是非常损坏的 1.9.2 版本)即使在例外位置也无法正常工作,但是当您在其他地方安装 xamp 时没有理智的方法来修复它,因为路径设置到许多文件。

按照http://pear.php.net/manual/en/installation.getting.php上的指南进行操作。

下载 http://pear.php.net/go-pear.phar,执行它,选择system广泛安装并将所有路径调整到您的位置。

一旦它起作用并且pear version报告1.9.4使用

pear config-set auto_discover 1
pear install --force --alldeps pear.phpqatools.org/phpqatools

“修复”旧安装遗留下来的任何东西。


只需使用该版本的 pear 也可以解决您所有的包和通道问题。

它,由于某种原因,不使用

pear channel-discover $everyChannelThatDoesNotWork
pear channel-update $thatChannel

对于被报告为问题的所有内容。

于 2012-09-07T13:43:06.420 回答
8

如果像我一样,运行所有 pear config-set 命令仍会导致此错误:

未能 mkdir C:\php\pear\tests\PHP_CodeSniffer\CodeSniffer\Core\File

然后有一个简单的解决方案,我花了一段时间才弄清楚:

以管理员身份运行终端

真的,这就是解决方案。然后就像其他人说的:在您的终端中转到 c:\xampp\php 并输入以下命令:

pear config-set doc_dir C:\xampp\php\pear\docs
pear config-set cfg_dir C:\xampp\php\pear\cfg
pear config-set data_dir C:\xampp\php\pear\data
pear config-set man_dir C:\xampp\php\local\man
pear config-set test_dir C:\xampp\php\pear\tests
pear config-set www_dir C:\xampp\php\pear\www

pear install PHP_CodeSniffer
于 2016-10-04T08:32:55.023 回答
5

尝试使用以下命令更正配置路径:

pear config-show

pear config-create / C:\xampp\php\pear.ini

pear -c c:\xampp\php\pear.ini config-set doc_dir c:\xampp\php\pear\docs
pear -c c:\xampp\php\pear.ini config-set bin_dir c:\xampp\php
pear -c c:\xampp\php\pear.ini config-set ext_dir c:\xampp\php\ext
pear -c c:\xampp\php\pear.ini config-set php_dir c:\xampp\php\pear
pear -c c:\xampp\php\pear.ini config-set cache_dir c:\xampp\php\cache
pear -c c:\xampp\php\pear.ini config-set cfg_dir c:\xampp\php\cfg
pear -c c:\xampp\php\pear.ini config-set data_dir c:\xampp\php\data
pear -c c:\xampp\php\pear.ini config-set download_dir c:\xampp\php\download
pear -c c:\xampp\php\pear.ini config-set php_bin c:\xampp\php\php.exe
pear -c c:\xampp\php\pear.ini config-set temp_dir c:\xampp\php\tmp
pear -c c:\xampp\php\pear.ini config-set test_dir c:\xampp\php\pear\tests
pear -c c:\xampp\php\pear.ini config-set www_dir c:\xampp\php\pear\www

pear -c c:\xampp\php\pear.ini config-show

每个 pear 命令都应该使用-c c:\xampp\php\pear.ini参数,例如:

pear -c c:\xampp\php\pear.ini config-set auto_discover 1
pear -c c:\xampp\php\pear.ini install pear.phpqatools.org/phpqatools
于 2013-02-28T13:22:22.433 回答
3

无需手动删除 PEAR 缓存

pear clear-cache 

无需手动搜索缓存即可清除 pear 缓存。

这解决了我在尝试从 Structures 频道下载包时得到的响应,该频道是

 no release for package ....

这向我表明 pear 没有针对已记录为在我的系统上的特定软件包的新版本,尽管没有成功安装。

还使用将首选状态从稳定更改为开发

pear config-set preferred_state devel

允许安装我需要的所有软件包,其中大部分是 devel 或 alpha

希望这可以帮助某人避免浪费将近一天的时间,这使我无法弄清楚为什么我得到“不发布”响应。

于 2013-12-07T16:22:10.047 回答
1

Pear 配置不正确。我记得 XAMPP 安装的梨不是开箱即用的。

有关如何正确设置所需变量的指导,请参见此处。找到设置为默认值的那些,例如C:\php\<something>并将它们更改为 XAMPP 的 pear/php 安装中的文件夹。

于 2012-09-07T12:56:21.567 回答