简短版本:我认为我的 brew 安装非常混乱,我不知道该怎么做。
长版...
我开始尝试安装 ruby:
brew install ruby
这看起来很简单。我立即遇到了这个错误:
Error: Cannot write to /usr/local/Cellar
运行 brew doctor 后,我发现了一长串表单错误
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.
最终我用一个巨大的 chmod 解决了这个问题,即
sudo chmod -R 777 /usr/local
这似乎奏效了。
从那里我尝试了一个简单的“brew update”。这给了我一个新问题:
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 commit”并成功提交了我的更改(我不知道它们是什么)。我认为在与 brew update 合并时覆盖更改很容易......
......绝对不是这样的。以下是 brew update 的一些示例输出:
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.
现在我在 brew 中的所有文件都散布着“<<<<<<< HEAD”和“>>>>>>>> [hashcode]”。为了解决这个问题,我运行了一些在这里找到的命令:
git checkout --theirs *
git add .
git merge
我没有太多 git 经验,但我现在相当确定这是一个糟糕的主意。Git 确信我没有要合并的更改,但所有“<<<<<<< HEAD”等标签仍在我的代码中。我什至无法运行“brew doctor”或“brew update”,因为 brew 的基本代码不可读。
结论...
我觉得最好的办法是卸载并重新安装 brew,除了我必须重新安装我所有的 brew 安装。而且因为我不能运行“brew list”,所以我不知道这些是什么。还有一种方法可以让我接受所有远程更改吗?我现在能做什么?