我已经使用 Ubuntu 三年了,现在我转向了 Mac OS X。我将我的帐户设置为管理员用户,并在 拥有自己的空间/Users/<my-username>
。
每次我在 Ubuntu 上安装软件包时,它都会要求我输入 root 密码,我必须在密码前加上sudo
。但是在 OS X 中,我只需输入brew install
。我知道我是 root 用户(具有管理员权限),所以我不需要使用sudo
,但要启动 之类的服务mongod
,我必须使用sudo
。为什么呢?
我不明白;有人可以解释一下吗?
答案1
Homebrew 不仅不需要sudo
,而且警告不要使用它。
Homebrew 将文件存储在“用户空间”(/usr/local
分支下)中并且不会触及系统目录。
可执行文件保存在 中/usr/local/bin
,配置文件保存在 中/usr/local/etc
,包保存在 中/usr/local/Cellar
。这两个目录都不需要管理权限来写入文件(默认情况下,所有者和组成员admin
对这些目录拥有完全权限)。
在 Ubuntu 上,您需要获得管理权限,因为 APT 安装的软件包将其文件和配置存储在系统目录(如/etc
、/usr/bin
)中,默认情况下不允许普通用户修改。
另一方面,如果您运行某个程序,则可能需要管理员权限才能执行某些操作(例如注册为服务)。此要求与读取/写入文件(属于包)的权限无关,在这些情况下,Ubuntu 和 Mac OS X 都需要sudo
。