我知道这是一个常见的问题,但我真的很挣扎。
我最近尝试在mac操作系统elcapitan上安装mysql和自制程序。但是,我遇到了一些问题,我想重新安装它。然而,每当我尝试这样做时,它给了我:
Error: Permission denied @ rb_sysopen - /usr/local/var/homebrew/locks/mysql.formula.lock
我试图通过在根帐户中手动排序命名文件来绕过这个错误,但是文件太多了。
所以我尝试用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.
我看了很多文章,包括这个链接!他们中的许多人建议我使用root将/usr/local文件夹直接转到自己的用户帐户,这样我就可以在没有任何权限问题的情况下运行brew,但这太危险了。
我试着跑:
sudo chown root /usr/local/bin/brew
但这并不奏效。
有什么方法可以绕过这个错误,以root身份运行brew吗?
2条答案
按热度按时间np8igboo1#
他们中的许多人建议我使用root将/usr/local文件夹直接转到自己的用户帐户,这样我就可以在没有任何权限问题的情况下运行brew,但这太危险了。
chown
把所有的/usr/local/
可能是个坏主意,因为它不完全在自制的控制之下。但只是/usr/local/var/homebrew/locks/mysql.formula.lock
应该没问题。并听从
brew doctor
.尝试运行:
sudo chown root /usr/local/bin/brew
但这并不奏效。所有这些都是为了制作文件
/usr/local/bin/brew
归root所有。它不能让它作为根运行。您应该将其更改回用户所有,否则将无法升级brew。要使它以root用户身份运行,可以使用setuid。不要这样做。这本身就很危险,而且就你目前对权限的理解而言,更是如此。没有什么私人的权限,需要一段时间来习惯和欣赏。
homebrew不会以根用户身份运行,以限制恶意软件包或简单错误可能造成的损害。以你的用户身份运行只会破坏你的用户可以访问的东西。这就把系统文件等重要的东西隔离了。这就是unix权限系统的目的:限制可能造成的损害。如果你跑了
brew
所有的赌注都输掉了。此外,如果
/usr/local/var/homebrew/locks/mysql.formula.lock
属于root,这意味着mysql作为root运行。如果您以root用户身份运行mysql,并且它受到了危害,那么您的整个系统就会受到危害。如果您以您的用户或特殊受限的mysql用户的身份运行mysql,那么只有您的用户文件或mysql自己的文件会受到损害。把它当作自制的违禁品。学会用尽可能少的权限运行是非常值得的。
o3imoua42#
由于安全原因,使用brew作为根目录是个坏主意。相反,您可以将brew文件所有权更改为当前登录的用户。键入以下单个命令: