2013-06-19 62 views
0

简短版本:我想我已经制作了一大堆我的brew安装,但我不知道该怎么做。合并冲突导致Brew停用

长版...

我开始了一天试图安装Ruby:

brew install ruby 

这似乎很简单。我立刻就遇到了这个错误:

Error: Cannot write to /usr/local/Cellar 

运行BREW医生后,我发现形式

Warning: /usr/local/<dir> isn't writable. 
This can happen if you "sudo make install" software that isn't managed by 
by Homebrew. If a brew tries to write a file to this directory, the 
install will fail during the link step. 

最后我用一个巨大的文件模式解决了这个误差的一个长长的清单,即

sudo chmod -R 777 /usr/local 

这似乎是伎俩。

从那里我尝试了一个简单的“酿造更新”。这给了我一个新的问题:

error: Your local changes to the following files would be overwritten by merge: 
<list of about 100 files> 
Please, commit your changes or stash them before you can merge. 

不确定自己能做什么,我跑了“git的承诺”,并成功提交我的变化(我不知道他们是什么)。我认为只要在与brew更新合并时覆盖这些更改是很容易的...

...那肯定不是这种情况。下面是从酿造更新后的输出:

Auto-merging share/man/man1/brew.1 
Auto-merging Library/Homebrew/version.rb 
CONFLICT (content): Merge conflict in Library/Homebrew/version.rb 
Auto-merging Library/Homebrew/test/testing_env.rb 
Auto-merging Library/Homebrew/test/test_versions.rb 
CONFLICT (content): Merge conflict in Library/Homebrew/test/test_versions.rb 
Auto-merging Library/Homebrew/test/test_requirement.rb 
Auto-merging Library/Homebrew/test/test_formula_validation.rb 
CONFLICT (modify/delete): Library/Homebrew/test/test_dependency_expansion.rb deleted in HEAD and modified in 9e3aa8925cf4b03a5b1fda13971dde84e1162c41. 

现在,所有的我在酿造文件有“< < < < < < < HEAD”的和‘>>>>>>> [哈希码]’的散落在他们身边。为了尝试解决这个问题,我跑我发现here几个命令:

git checkout --theirs * 
git add . 
git merge 

我没有太多的git的经验,但现在我相当肯定,这是一个可怕的想法。 Git确信我没有更改合并,但所有的“等”标签仍然在我的代码中。我甚至不能运行“brew doctor”或“brew update”,因为brew的基本代码不可读。

结论...

我觉得最好的办法是卸载并重新安装酿造,但我将不得不重新安装我的酿造设备。而且因为我无法运行“酿造名单”,我不知道这些是什么。是否还有一种方法可以接受所有的远程更改?我现在能做什么?

回答

1

chmod -R 777对于安全性来说是非常糟糕的。这使得它下面的每个文件和目录都可读写和可执行,这意味着每个人都可以使用

很大部分目录应该具有的权限775 - 更好755和文件要么是664644,除非它们是可执行文件一样,存在于/usr/local/bin在这种情况下,他们应该再次755

递归更改为/usr/local/意味着status/commit中列出的每个文件都有权限更改,这就是brew为什么会抱怨的原因。可能看起来不是很多,但它意味着世界和你的系统的安全。

得到这个回来的唯一的办法就是对每个文件/目录的权限重置/usr/local/下,然后删除您与git reset --hard origin/master

BREW完全承诺不能很好地与所有的和其他应用程序在可能情况下我玩除非你真的需要,否则建议避免使用它。

+0

非常感谢!我对这种系统(很清楚)没有太多经验。硬重置是我需要的,我会研究重置权限 – NcAdams