【问题标题】:OSX 10.8 xcrun (No such file or directory)OSX 10.8 xcrun(没有这样的文件或目录)
【发布时间】:2012-10-14 00:56:25
【问题描述】:

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

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

错误:安装 jekyll 时出错:

错误:构建 gem 原生扩展失败。

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 可用于绕过缓存查找。”但这似乎都没有任何效果:唯一的输出仍然是上面的……

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

#!/bin/bash
$@

【问题讨论】:

  • 通过“安装命令行工具”,您的意思是您只从 Apple Developer 站点安装了独立的 Command Line Tools 软件包,而没有安装 Xcode.app,还是您安装了 Xcode.app 然后再安装Xcode.app Preferences 菜单中的 Command Line Tools 组件?
  • 来自 Apple 开发者网站的独立包。 - 我修改了问题以使其更清楚。很抱歉造成混乱。
  • 覆盖我的路径很容易:export PATH=$HOME/local/bin:$PATH 指定覆盖文件~/local/bin/xcrun 以包含黑客。我还必须运行 sudo xcode-select -switch /usr/bin 以匹配 -print-path
  • 看起来黑客需要放在/usr/bin/xcrun而不是xcrun覆盖PATH中的其他地方。

标签: xcode macos gcc osx-mountain-lion xcrun


【解决方案1】:

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

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

像这样切换到 Xcode:

$ sudo xcode-select --switch /Applications/Xcode.app

【讨论】:

  • 我只安装了命令行工具,而不是 Xcode。将路径设置为 /usr/bin 对我来说最有意义,因为编译器驻留在那里......因此切换会导致错误:xcode-select: Error: Path "/Applications/Xcode.app" is not a directory.
【解决方案2】:

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

【讨论】:

  • 多么肮脏的黑客行为!我想知道它什么时候会回来咬我:我用两行 shell 脚本替换了 xcrun:#!/bin/bash $@
  • 嘿。另一件事:独立的命令行工具不像完整的 Xcode 那样提供 SDK。因此,如果您正在构建的内容需要早期操作系统级别的 SDK,您将需要完整的 Xcode 安装。
  • 哇。那个黑客对我有用!它不漂亮,但比安装在我不需要的垃圾上更好。
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

    在控制台输入这些命令:

    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
    

    【讨论】:

    • xcode-select: error: invalid developer directory '/usr/bin' ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 2016-07-14
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 2021-06-24
    • 2015-02-20
    相关资源
    最近更新 更多