【问题标题】:Upgrading PEAR on Mac OS X / MAMP在 Mac OS X / MAMP 上升级 PEAR
【发布时间】:2026-02-02 19:35:02
【问题描述】:

我在 Mac OS X 上安装 PHPUnit,但我当前的 PEAR 版本有问题。现有的 SO 问题并不能解决问题。当前的 PEAR 版本列为 1.9.1。 PHPUnit 需要 1.9.4。

[le programmeur]$which pear
/Applications/MAMP/bin/php5.3/bin/pear

[le programmeur]$pear -V
PEAR Version: 1.9.1
PHP Version: 5.3.5
Zend Engine Version: 2.3.0

[le programmeur]$pear config-get php_dir
/Users/rallen8440/pear/share/pear

运行pear install -f pear PEAR 1.9.4 后应该安装了,running pear upgrade pear“表明”我们处于最新版本。

[le programmeur]$/Applications/MAMP/bin/php5.3/bin/pear install -f pear
WARNING: "pear/Console_Getopt" is deprecated in favor of "pear/Console_GetoptPlus"
downloading PEAR-1.9.4.tgz ...
Starting to download PEAR-1.9.4.tgz (296,332 bytes)
.............................................................done: 296,332 bytes
install ok: channel://pear.php.net/PEAR-1.9.4
PEAR: Optional feature webinstaller available (PEAR's web-based installer)
PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)
PEAR: To install optional features use "pear install pear/PEAR#featurename"
[le programmeur]$/Applications/MAMP/bin/php5.3/bin/pear -V
PEAR Version: 1.9.1
PHP Version: 5.3.5
Zend Engine Version: 2.3.0

[le programmeur]$pear upgrade pear
pear/pear is already installed and is the same as the released version 1.9.4
upgrade failed

但是,当 pear install phpunit/PHPUnit 运行时,它会说:

[le programmeur]$pear install phpunit/PHPUnit
Did not download optional dependencies: phpunit/PHP_Invoker, use --alldeps to download automatically
phpunit/PHPUnit requires PEAR Installer (version >= 1.9.4), installed version is 1.9.1
phpunit/PHPUnit can optionally use package "phpunit/PHP_Invoker" (version >= 1.1.0)
phpunit/File_Iterator requires PEAR Installer (version >= 1.9.2), installed version is 1.9.1
phpunit/Text_Template requires PEAR Installer (version >= 1.9.4), installed version is 1.9.1
phpunit/PHP_CodeCoverage requires PEAR Installer (version >= 1.9.4), installed version is 1.9.1
phpunit/PHP_CodeCoverage requires package "phpunit/File_Iterator" (version >= 1.3.0)
phpunit/PHP_CodeCoverage requires package "phpunit/Text_Template" (version >= 1.1.1)
phpunit/PHP_CodeCoverage can optionally use PHP extension "xdebug" (version >= 2.0.5)
phpunit/PHP_Timer requires PEAR Installer (version >= 1.9.2), installed version is 1.9.1
phpunit/PHPUnit_MockObject requires PEAR Installer (version >= 1.9.4), installed version is 1.9.1
phpunit/PHPUnit_MockObject requires package "phpunit/Text_Template" (version >= 1.1.1)
phpunit/PHP_TokenStream requires PEAR Installer (version >= 1.9.4), installed version is 1.9.1
No valid packages found
install failed

[le programmeur]$pear -V
PEAR Version: 1.9.1
PHP Version: 5.3.5
Zend Engine Version: 2.3.0

以前在 /usr/bin/pear 中安装了一个 PEAR,但它不再存在:

[le programmeur]$ls /usr/bin/pear
pear_old  peardev

~/.profile PATH 指向/Applications/MAMP/bin/php5.3/bin

# Mod path
export PATH=/Applications/MAMP/bin/php5.3/bin:$PATH

我不知道我在这里缺少什么。哈!

【问题讨论】:

  • 我终于放弃了用 PEAR 尝试它,我下载了 PHPUnit 文件并将它们放在 app/vendor/ 中。

标签: php macos pear mamp


【解决方案1】:

您的机器上有两个 pear 安装,如 https://*.com/a/6596669/282601 所述

您正在执行的pear 命令不是更新自身,而是第二次安装。

唯一的解决方案是配置 pear 以使其自行升级,方法是更改​​ pear config-show 中的路径 - 或者丢弃所有安装并从头开始安装。

【讨论】:

    最近更新 更多