2011-03-26 62 views
23

我使用Homebrew作为软件包管理器。我运行此命令:自制软件生成两个警告

brew update 

但我得到这个错误:

error: unable to unlink old 'bin/brew' (Permission denied)

Error: Failed while executing git pull http://github.com/mxcl/homebrew.git master

在sudo下再次运行:

/usr/local/Library/Homebrew/brew.h.rb:1: warning: already initialized constant FORMULA_META_FILES
/usr/local/Library/Homebrew/brew.h.rb:2: warning: already initialized constant PLEASE_REPORT_BUG error: The following untracked working tree files would be overwritten by checkout:

.gitignore
;;; big list goes here ;;;;

而现在,每一个酿造命令生成这些警告:

/usr/local/Library/Homebrew/brew.h.rb:1: warning: already initialized constant FORMULA_META_FILES
/usr/local/Library/Homebrew/brew.h.rb:2: warning: already initialized constant PLEASE_REPORT_BUG

任何想法wha t出错了吗?

回答

42

这听起来像是在它出错之前更新了一半,现在它处于不良状态。你可能想

cd /usr/local && git reset --hard HEAD 

这应该重置所有git控制的文件(例如自制软件)回到他们的原始版本。你可能需要sudo那个git命令。之后,您可以尝试修复权限(不过您可能需要)(如果该目录中没有任何文件需要由其他人拥有,则可以像运行sudo chown -R yourname:staff /usr/local一样简单)。

+0

那么,这是Git问题,而不是酿造?对不起,我不熟悉Git。 – Chiron 2011-03-26 02:57:17

+3

这不是一个混帐问题。这是使用git更新brew安装时遇到的权限问题。 – 2011-03-26 04:05:06

0

今天我有类似的问题,这指出我在正确的方向,但重置是不够的。我不知道如何,但不知何故,我有很多未跟踪的文件,我注意到在运行git status

我终于把所有的文件(为了安全起见)的副本,并删除了他们,之后冲泡更新工作就像一个魅力

1

确保在/ usr/local/bin目录具有写权限的用户帐户。

+0

为我工作,“bin /”有一个未知的UID编号:) – 2014-08-16 10:38:34