【问题标题】:Running brew generates warnings运行 brew 会产生警告
【发布时间】:2011-06-02 06:35:36
【问题描述】:

我在 OS X 10.6.5 上安装了最新的 Homebrew
运行任何命令都会生成此警告:

/usr/local/Library/Homebrew/global.rb:34:警告:不安全的世界可写目录 /usr/local/bin 在 PATH,模式 040777

为什么我会收到此警告?以及如何补救?

【问题讨论】:

    标签: macos osx-snow-leopard homebrew


    【解决方案1】:

    我遇到了同样的问题,只是用这 3 个命令修复了它,大致取自 Homebrew 安装脚本:

    sudo chgrp -R admin /usr/local
    sudo chmod -R g+rwx /usr/local
    sudo chmod -R o-w /usr/local
    

    【讨论】:

    • 当其他一些程序(Airfoil 的 InstantOn)弄乱了权限时也帮助了我。除此之外,我还必须通过运行 cd /usr/local && git reset --hard && git clean -d -f 来清理 /usr/local 中的 git 存储库
    【解决方案2】:

    这是 ruby​​ 的一个安全特性,你可以通过运行改变目录 /usr/local/bin 的权限来摆脱这个:

    sudo chmod go-w /usr/local/bin
    

    并在提示符处输入您的密码。

    您确实不需要更改所有权,并且也不应该按照 Ryan 的建议删除 /usr/local(这将需要您重建到目前为止已完成的所有工作) ,该目录归root所有,这是通常的方式。

    【讨论】:

    • 对于 Homebrew,/usr/local 目录归根用户所有。这就是重点。在这种情况下,从头开始并不是一件坏事,因为很明显 Homebrew 安装已经以某种方式或某事搞砸了。换句话说,很可能存在其他变量(例如放错位置的库),这将导致进一步的痛苦。
    • Homebrew 不是 /usr/local/ 中唯一的东西,如果你要安装例如MacTex,超过 1 GB 的 TeXLife 包会出现在那里,你肯定不想因为 Homebrew 不工作而重新安装它们。不管 Homebrews 自己拥有 /usr/local 的想法听起来多么令人信服,我更喜欢通常的方式:系统范围内的可用应用程序由 root 拥有。
    【解决方案3】:

    首先,有两个 brew 命令在调试问题时很有帮助。它们是:

    $ brew doctor
    $ brew missing
    

    其次,Homebrew 告诉您/usr/local/bin 设置为对谁可以写入该目录过于宽容——这是一个潜在的安全问题。要解决此问题,您可以将权限重置为 Homebrew 的预期。

    $ chmod 755 /usr/local/bin
    

    如果您在尝试执行此操作时遇到错误,这可能意味着您的 /usr/local 目录(和子目录)归错误的用户所有。如果是这种情况,我会考虑删除您的 /usr/local 目录和 reinstalling Homebrew correctly。或者,您可以通过在最后一个命令前加上 sudo 并输入您的管理员密码来覆盖错误:

    $ sudo chmod 755 /usr/local/bin
    

    【讨论】:

    • 我同意 Asmus 的观点,即删除 /usr/local 是一个糟糕的建议。
    • 当你第一次开始使用 Homebrew 时,你需要从一个干净的 /usr/local 开始。 /usr/local 中的权限设置不正确这一事实表明 Homebrew 一开始就安装不正确。在这种情况下,从头开始并不是一件坏事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2011-01-16
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    相关资源
    最近更新 更多