【问题标题】:PEAR package install failsPEAR 包安装失败
【发布时间】:2012-09-01 08:34:42
【问题描述】:

我尝试安装包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 on C:\php\pear\ 以及如何解决未知删除通道的问题...

【问题讨论】:

  • 我通过手动删除 PEAR 的缓存(位于:C:\Users\<username>\AppData\Local\Temp\pear)解决了一个类似(但不一样)的问题。

标签: php console phpunit package pear


【解决方案1】:

我发现使用 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 channel-discover $everyChannelThatDoesNotWork
pear channel-update $thatChannel

所有被报告为问题的东西。

【讨论】:

  • 更新无效,但完全删除 pear 并从头开始安装 - 是的。
  • 哇,谢谢!这是迄今为止安装那些永无止境的 qa 包的最简单方法。最佳答案。
【解决方案2】:

如果像我一样,运行所有 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

【讨论】:

  • @Joery 这绝对是问题
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

    无需手动删除PEAR缓存

    pear clear-cache 
    

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

    这解决了我在尝试从结构通道下载包时得到的响应

     no release for package ....
    

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

    还使用

    首选状态从稳定更改为开发
    pear config-set preferred_state devel
    

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

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

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

      • 您可能需要手动更改配置文件。另请参阅this answer
      猜你喜欢
      • 2011-03-17
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 2015-03-08
      • 1970-01-01
      • 2021-12-16
      • 2011-03-19
      相关资源
      最近更新 更多