升级到 OSX 10.8 后 PECL 安装出现错误

升级到 OSX 10.8 后 PECL 安装出现错误

我刚刚将我的操作系统升级到 Mountain Lion,而 PECL 不再工作(它处于测试阶段,所以没有什么问题,但我想让它工作起来,这样我也可以升级我闪亮的新 SSD 上的操作系统)。

我正在使用本机 PHP 安装,没有 macports/homebrew 或类似的东西。

运行sudo pecl install uploadprogress(例如)会产生以下终端输出:

downloading uploadprogress-1.0.3.1.tgz ...
Starting to download uploadprogress-1.0.3.1.tgz (9,040 bytes)
.....done: 9,040 bytes
4 source files, building
running: phpize
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
autom4te: need GNU m4 1.4 or later: /usr/bin/m4
ERROR: `phpize' failed

我猜问题是 3grep行。我发现几个帖子都说这是由于未安装 XCode 导致的...但是 XCode安装并更新至最新版本 (4.4)。所有相关符号链接/Developer/usr/bin/*也应存在。

m4 的当前版本为:m4 (GNU M4) 1.4.13,因此即使上面的输出包含与其相关的行,我也不认为这可能是问题所在。

我确信这只是一个简单的问题,有人有什么线索吗?

答案1

尝试通过以下命令进行安装(相应地修改路径),例如:

M4=/Developer/usr/bin/m4 pecl install uploadprogress

答案2

结果发现只是一件简单得可笑的事情。

m4 现在位于 /usr/local/bin/m4,某个东西(可能是 autom4te?)正在 /usr/bin/m4 上寻找它。快速符号链接很好地解决了这个问题。

答案3

事实证明,您可能需要同意 M4 的 XCode 条款和条件。为此,请运行:

sudo m4 version

如果这是您升级后第一次运行它,系统将提示您阅读并同意条款和条件。此后,您可以通过重新运行之前所需的命令来使用它。

答案4

我花了很长时间,但我是这样解决的:

  • 跑步:

    which autom4te
    
  • 给出的路径autom4te。在我的例子中,这是:/Applications/MAMP/Library/bin/autom4te

  • 进入该路径,查看是否有程序m4

  • 如果是,则可能是已损坏。因此将其重命名:

    mv m4 m4_old
    
  • 现在检查你的新版本 m4 位于何处。因此运行:

     which m4
    

它为您提供:/path/to/your/m4

  • 现在在您的文件夹中找到autom4te指向原始路径的符号链接m4,因此:

     ln -s /path/to/your/m4
    

现在它应该可以工作了,运行 pecl

相关内容