zsh compinit:安装Homebrew

时间:2019-03-06 10:06:54

标签: homebrew zsh macos-sierra homebrew-cask

在Mac上安装Homebrew和Homebrew-Cask之后(以具有用户ID'admin'的管理员身份运行MacOS 10.12.6),我收到错误消息

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

每次我启动zsh时。用compaudit投资问题时,我发现提到了几个不安全的目录,其中大多数与Homebrew相关,例如/usr/local/share/zsh/site-functions。该目录及其条目的访问权为0755,应该可以,但是-例如-条目

/usr/local/share/zsh/site-functions/_brew

是到Homebrew中定义zsh补全的文件的符号链接,拥有者 admin 。我的猜测是zsh想在这里看到用户 root

如果这是Linux,我只需将这些文件的所有者更改为 root ,或者说,我首先将整个安装都设为root。但是,在MacOS 10.12中,甚至“管理员”都不能完全控制系统,尽管我可以以管理员身份登录,但我什至不知道root的密码。

是否有解决此问题的聪明方法?或者,我们是否可以以某种方式教zsh compinit永远不要问这个烦人的问题,要么接受不安全的目录,要么跳过它们?还是最好以admin身份登录,然后从site-functions删除有问题的符号链接?我可以使用不知道如何处理brew命令的完成系统。

1 个答案:

答案 0 :(得分:0)

我发现,错误消息是由我的compinit中的.zshrc调用生成的,可以通过传递-i选项将其关闭,即

 compinit -i

虽然这可以解决问题,但是Ortomala Lokni提出的有关应使用用户权限安装Homebrew的论点也值得考虑-仅Homebrew不允许我这样做;但这是一个单独的主题。