我知道这是一个常见问题,但我真的很挣扎。
我最近尝试在 Mac OS El-Capitan 上安装带有 Homebrew 的 MySQL。但是,我遇到了一些问题,我想重新安装它。然而,每当我尝试这样做时,它都会给我:
Error: Permission denied @ rb_sysopen - /usr/local/var/homebrew/locks/mysql.formula.lock
我试图通过简单地在 root 帐户中手动排序命名文件来绕过这个错误,但是文件太多了。
所以我尝试用 root 卸载它,但它给了我这个错误:
Error: Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.
我看了很多文章,包括这个链接!他们中的许多人建议我将 /usr/local 文件夹直接 chown 到我自己的 root 用户帐户,这样我就可以在没有任何权限问题的情况下运行 brew,但这太危险了。
我试着跑:
sudo chown root /usr/local/bin/brew
但这并没有奏效。
有什么方法可以绕过这个错误,并以 root 身份运行 brew?
他们中的许多人建议我将 /usr/local 文件夹直接 chown 到我自己的 root 用户帐户,这样我就可以在没有任何权限问题的情况下运行 brew,但这太危险了。
chown
全部/usr/local/
都可能是一个坏主意,因为它并不完全在 Homebrew 的控制之下。不过/usr/local/var/homebrew/locks/mysql.formula.lock
应该没问题。
chown $USER /usr/local/var/homebrew/locks/mysql.formula.lock
并遵循 的建议brew doctor
。
试图运行:
sudo chown root /usr/local/bin/brew
但这并没有奏效。
完成的所有这些都是使文件/usr/local/bin/brew
归root所有。它不会让它以 root 身份运行。您应该将其改回为您的用户所有,否则您将无法升级 brew。
要使其以 root 身份运行,您可以使用setuid。不要这样做。它本质上是危险的,而且与您目前对权限的理解更是如此。没什么私人的,权限需要一段时间才能习惯和欣赏。
Homebrew 不会以 root 身份运行,以限制恶意软件包或简单错误可能造成的损害。以您的用户身份运行只会损害您的用户可以访问的内容。这会屏蔽诸如系统文件之类的重要内容。这就是 Unix 权限系统的目的:限制可能造成的损害。如果您brew
以 root 身份运行,则所有赌注都将关闭。
此外,如果/usr/local/var/homebrew/locks/mysql.formula.lock
由 root 拥有,则意味着 MySQL 以 root 身份运行。如果您以 root 身份运行 MySQL 并且它受到损害,那么您的整个系统就会受到损害。如果您以您的用户或特殊受限的 mysql 用户身份运行 MySQL,则只有您的用户文件或 mysql 自己的文件可能会受到损害。按照自制软件的规定运行它。
学习以尽可能少的权限运行是非常值得的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句