我搜索了一下周围,似乎无法找到任何人有这个问题的任何记录。
每当我尝试运行
$ brew update
我与奖励
/usr/local/bin/brew:34: uninitialized constant MACOS (NameError)
这不是我的机器,我通常在Linux系统开发,所以这是所有有点奇怪我。
任何帮助将不胜感激! 请告诉我,如果有任何额外的信息,我应该提供。 同样,我不习惯自制或OSX。
EDIT在JameA的请求
xiao:~ patrick$ brew doctor
/usr/local/bin/brew:34: uninitialized constant MACOS (NameError)
xiao:~ patrick$ brew --config
/usr/local/bin/brew:34: uninitialized constant MACOS (NameError)
...不知道我喜欢这整个“这里,使用这款MacBook的项目,它工作得更好”的事情...
该MACOS
常数在设定globals.rb
。 好像你可能有家酿的borked安装。
检查的输出brew doctor
的任何建议。
如果没有帮助,请与结果更新brew --config
。
如果这些方法都失败,你可能要尝试重新安装自制软件。
更新:
由于这是一个以前的用户的机器确保你的用户是在/ usr /本地和内一切的所有者。 与修复它sudo chown -R $USER /usr/local
。
我敢肯定,这根本原因是升级失败尝试从更早的版本0.9.5自制软件。 基本上,如果你运行brew update
,而不是sudo brew update
文件的一部分被更新,而有些则没有。 下面是我工作:
编辑/usr/local/bin/brew
(这只是一个Ruby文件,而不是已编译的二进制,所以任何文本编辑器都可以)。 你会发现像块:
if MACOS and MACOS_VERSION < 10.5 abort <<-EOABORT.undent Homebrew requires Leopard or higher. For Tiger support, see: https://github.com/mistydemeo/tigerbrew EOABORT end
评论了这一点。 即使你不知道红宝石,你也许可以直觉这是什么东西做的,它的检查,看看你有OSX的最新版本。 假设你其实有这个版本,这个全面的检查是没有必要的。 啤酒仍然是断开的,但至少现在它会加载远远不够给错误消息。
运行sudo brew update
, 扰流警报 :它失败了,但这次有意义的错误信息:
$ brew update error: Your local changes to the following files would be overwritten by merge: [giant list of files here]
好了,今天我才知道, brew update
仅仅是一个包装git pull
,因为任何人谁使用Git的工作知道的错误消息。 我们也可以解决这个问题。
开关与自制的Git仓库cd /usr/local
,并发出命令git reset --hard FETCH_HEAD
。 这件作品在这里找到 。
给出命令sudo brew update
。 家酿现在应该成功地更新和正常工作!
一旦系统重新工作,你可以真正有种为什么像这样的错误会发生。 其一, usr/local/bin/brew
已经完全rewriten和甚至没有红宝石了,而且大多数的配置已经搬进/usr/local/Library/brew.rb
不再使用常数MACOS
或MACOS_VERSION
常量,因为它们已被替换为导向的多个对象OS.mac
和MacOS.version
。
我有一个类似的错误与酿造的“borked”安装。 我删除的代码的小5行块的/ usr / local / bin中/酿造开始与MACOS行脚本。 这奏效了,让我卸载,并最终重新安装。
除了马特Korostoff的答案。 在3点(重置回购),对最新版本的自制软件,回购不再/usr/local
,做cd "$(brew --repo)"
来代替。