了解自制“no-sudo”哲学和质疑常见问题解答

Vit*_*lov 9 unix sudo permissions homebrew macos

全新安装 OS X 后,我决定以正确的方式安装 python 包管理器。所以我开始谷歌搜索,发现自制软件是最好的方法。现在我有两个问题:

  • 从自制常见问题解答:

Homebrew 旨在无需使用 sudo 即可工作。

但是安装脚本要求输入密码。那是因为实际用户被授予读取、写入、执行 usr/local... 目录的权限,因为它是 admin 的组成员。因此,homebrew 不是每次都询问 sudo,而是询问一次。尽管如此,规则已被打破,因为您必须使用 sudo yes 或 yes。

我害怕在安装软件包时将 sudo 与 python 一起使用。这就是我决定使用自制软件的原因。但实际上不一样吗?

如果这是真的,我认为让自制程序做你想做的事情是不安全的,因为它们有 root 权限。

  • 从自制常见问题解答:

/usr/local/bin 已经在您的 PATH 中。

那为什么我需要

在 PATH 的顶​​部插入 Homebrew 目录

正如在http://docs.python-guide.org/en/latest/starting/install/osx/ 中所说的那样?

命令自制软件的安装脚本执行:

/usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig

/usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud)

小智 5

他们说将/usr/local/bin/其放在顶部$PATH,以便在系统程序之前找到自制程序。例如,如果您使用 python 的自制版本,系统一in/usr/bin/python将会在您的./usr/local/bin/python/usr/local/bin /usr/bin$PATH/usr/local/bin$PATH


ter*_*don 3

哇哦,谁说安装的程序有root权限的?sudo用于授予写入受保护目录的权限,以便您可以将内容安装到系统文件夹中。root 权限不会被您安装的程序神奇地继承。它们像所有程序一样安装,并具有它们应有的任何权限。安装sudo不会提升已安装文件的权限。

至于$PATH,如果自制软件已安装到/usr/local/bin并且已经在您的系统中$PATH,那么您不需要执行任何操作。