26

在 OSX 10.8 上执行gem install jekyll安装了来自 Apple 开发人员站点的独立命令行工具包(无 Xcode)时,我遇到以下错误:

构建原生扩展。这可能需要一段时间...

错误:安装 jekyll 时出错:

错误:无法构建 gem 原生扩展。

…</p>

xcrun cc -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common   -c porter.c
xcrun: Error: failed to exec real xcrun. (No such file or directory)

gcc 已安装:

$ which cc
/usr/bin/cc

xcrun 的查找路径已设置:

xcode-select -print-path
/usr/bin

但无论我尝试哪种参数,xcrun 都会返回

xcrun:错误:无法执行真正的 xcrun。(没有这样的文件或目录)

man xcrun读取“当使用名称 xcrun 调用 xcrun 时,标志 -log 和 -verbose 是有用的调试辅助工具。标志 -no-cache 可用于绕过缓存查找。” 但这似乎都没有任何效果:唯一的输出仍然是上面的……</p>

解决方案:按照下面 Ned Deily 的建议,我将 xcrun 替换为 shell 脚本,以简单地调用给定的参数:

#!/bin/bash
$@
4

4 回答 4

24

不幸的是,至少在我上次玩它时,我发现你真的不能xcrun只使用独立Command Line Tools包。它显然不是为那个用例设计的。独立包是 Xcode 4 的一项相当新的创新。如果您尝试安装的产品确实依赖于xcrun,您可能需要安装完整的Xcode.app发行版才能绕过它。那,或者修改发行版的 Makefile 等以不使用xcrun. 或者,可能(未经测试),创建一些目录和/或符号链接以假装xcrun认为您已经Xcode.app安装 - 一个凌乱的黑客。

于 2012-10-24T01:18:51.233 回答
18

在控制台上输入以下命令:

sudo xcode-select -switch /usr/bin
sudo mv /usr/bin/xcrun /usr/bin/xcrun-orig
sudo vim /usr/bin/xcrun

在您的虚拟 xcrun 文件中输入以下内容:

#!/bin/sh
$@

然后使其可执行:

sudo chmod 755 /usr/bin/xcrun
于 2013-10-13T20:47:48.893 回答
13

即使安装了命令行工具,您的 xcode-select 也很奇怪。它应该指向您的 XCode 包,而不是/usr/bin

$ xcode-select -print-path
/Applications/Xcode.app/Contents/Developer

像这样切换到 Xcode:

$ sudo xcode-select --switch /Applications/Xcode.app
于 2012-10-24T00:59:23.363 回答
0

我在使用 brew install hg 时遇到问题。xcodebuild -version 的输出令人窒息。

这是一个可怕的 hack,但我用一个 shell 脚本替换了 /usr/bin/xcodebuild,它刚刚回显“4.3”并且能够成功安装 mecurial。

于 2013-05-01T20:26:57.397 回答