当我跑 brew -- config
我得到
HOMEBREW_VERSION: 0.9.5
ORIGIN: https://github.com/Homebrew/homebrew
HEAD: bc071fb5448628aea8f066bbc0f37b0ecb4f11ee
Last commit: 16 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: quad-core 64-bit haswell
OS X: 10.10.1-x86_64
Xcode: 6.1.1
CLT: 6.1.1.0.1.1416017670
couldn't understand kern.osversion `14.0.0'
GCC-4.2: build 5666
Clang: 6.0 build 600
X11: 2.7.7 => /opt/X11
System Ruby: 2.0.0-p481
Perl: /usr/bin/perl
Python: /usr/local/bin/python => /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /usr/bin/ruby
即使我的 Xcode(在 Yosemite 上)命令行工具似乎是最新的(确保我重新运行
xcode-select --install
)并且在正确的位置/Applications/Xcode.app/Contents/Developer
根据
xcode-select -print-path
,我的(仅)gcc
是Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix
唯一的问题根据
brew doctor
是Unexpected static libraries:
/usr/local/lib/libtclstub8.6.a
/usr/local/lib/libtkstub8.6.a
但是我有一些可疑的东西,特别是
usr/bin/gcc-4.2
,其中 --version
给couldn't understand kern.osversion `14.0.0'
i686-apple-darwin11-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
...
和
/usr/bin/i686-apple-darwin11-gcc-4.2.1
,其中 --version
也给couldn't understand kern.osversion `14.0.0'
i686-apple-darwin11-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
...
什么
brew -- config
的报告couldn't understand kern.osversion `14.0.0'
意思?有什么我应该做的吗?
最佳答案
你前段时间在这台机器上升级过OS X吗?我猜它们来自较旧的安装。自 gcc
默认情况下未安装,操作系统升级可能没有删除或替换 gcc
和其他 XCode 命令行工具。你是否真的可以安全地删除它们,我不知道,但显而易见的是重命名它们(或将它们移动到备份子目录中),以便它们不在您的 PATH
之外。 .这样, Homebrew 软件将找不到它们并使用较新的编译器( clang
)。很可能,您的系统(XCode、brew)将照常运行,因为它们将使用 clang
在您的系统上找到。
您看到的错误,“无法理解 kern.osversion '14.0.0'”,很可能来自于 gcc
是针对较旧的 OS X 内核版本编译的,当前版本 (Yosemite/14.0.0) 与该内核版本向后不兼容。
我不知道究竟安装了哪些编译器工具,但仅针对违规 gcc
,您可以执行以下操作:
mv /usr/bin/gcc-4.2 /usr/bin/gcc-4.2-oldOSX10.9
(假设它安装在 10.9 上;可能安装在早期版本上)。
有点不幸的是,XCode 的升级(或者更确切地说,一个全新的版本)不会检查旧版本的命令行工具并删除那些(*)。尽管可以理解,Apple 当然假定您不会使用普通 XCode 工具之外的任何东西;他们显然不会以这种方式支持 Homebrew 软件。
(*) 也许确实如此,但是如果您跳过一个或 2 个版本,它可能不会及时检查旧版本。
关于xcode - 为什么 Homebrew 报告 "couldn' t 理解 kern.osversion `14.0.0'”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28068383/