我正在尝试解决brew问题。当我运行brew doctor
时,我得到以下输出:
Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
autoconf
libevent
Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
echo export PATH="/usr/local/sbin:$PATH" >> ~/.bash_profile
所以我继续尝试了所有的建议。首先brew link autoconf
,结果是:
Linking /usr/local/Cellar/autoconf/2.69... Warning: Could not link autoconf. Unlinking...
Error: Could not symlink file: /usr/local/Cellar/autoconf/2.69/share/emacs/site-lisp/autotest-mode.elc
Target /usr/local/share/emacs/site-lisp/autotest-mode.elc already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
brew link --overwrite formula_name
To list all files that would be deleted:
brew link --overwrite --dry-run formula_name
所以我再次尝试了建议的命令:brew link --overwrite autoconf
:
Linking /usr/local/Cellar/autoconf/2.69... Warning: Could not link autoconf. Unlinking...
Error: Permission denied - /usr/local/share/emacs/site-lisp/autotest-mode.elc
我对permission denied
的初步回复通常是以sudo
为前缀,这导致brew告诉我:Error: Cowardly refusing to
sudo brew link`。
尝试brew link libevent
时,我得到与brew link autoconf
相同的结果。
最后,我尝试通过运行建议的echo export PATH="/usr/local/sbin:$PATH" >> ~/.bash_profile
来解决未找到的sbin。这样运行没有错误,但是当我再次运行brew doctor
时,仍会显示消息。
有人知道如何解决这些问题吗?欢迎所有提示!
答案 0 :(得分:14)
这里的一般问题是你的系统上已经安装了autoconf和libevent,它们也在你的自制“Cellar”中。因此,您的系统上有两个autoconf副本,以及系统上的两个libevent副本。
自制软件尝试做的是删除这些库的先前安装(系统范围)版本,并使用来自自制软件酒窖的符号链接替换所有相关的 REAL 文件。这样可以让homebrew完全控制为您升级和管理这些库。它还可以在两个地方为您提供这些库的一个副本。
问题是自制软件没有删除这些REAL文件的unix权限,你需要自己动手。以下是autoconf的方法:
$ sudo rm /usr/local/share/emacs/site-lisp/autotest-mode.elc
$ sudo chmod 777 /usr/local/share/emacs/site-lisp/
$ sudo rm -rf /usr/local/share/autoconf
$ brew link --overwrite autoconf
您应该看到:
链接/usr/local/Cellar/autoconf/2.69 ...创建了21个符号链接
更新我刚刚注意到关于sbin的部分。我不确定这个问题最初是如何发生的,但我可以解释如何修复它。
自制软件推荐的修复程序(ECHO ...)仅在您下次登录Mac时生效。要使此更改生效,您必须强制终端重新读取.bash_profile文件。运行homebrew提供的ECHO命令后,只需$ source ~/.bash_profile
。
由于此问题现在已有几个月了,您可能已经发现此错误消息已消失。
答案 1 :(得分:2)
运行以下命令以授予权限:
$ sudo chown -R $(whoami) /usr/local
授予权限后,现在必须将它们链接起来,因为它已经安装:
$ brew link autoconf
$ brew link libevent
答案 2 :(得分:0)
您可能希望在/usr/local/share/emacs/site-lisp/autotest-mode.elc上使用chmod更改写入权限
之后你应该得到这样的东西: 链接/usr/local/Cellar/autoconf/2.69 ...创建了21个符号链接