我可以在没有 sudo 权限的情况下安装 Homebrew 吗?

Ben*_*der 46 sudo homebrew macos

Homebrew 很好地允许没有 sudo 权限的包安装,但似乎我需要管理员权限才能安装 Homebrew 本身。

我想在没有 sudo 或管理员权限的 Mac 环境中安装 Homebrew。这可能吗?

小智 26

如果有人在 2020 年及以后仍在寻找这个,是的,这在没有 root 权限的情况下是可能的:

mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
Run Code Online (Sandbox Code Playgroud)

以上允许您在任何地方安装自制软件。确保将 homebrew/bin 添加到 $PATH 中。

有关此替代安装方法(和来源)的更多信息:https : //docs.brew.sh/Installation#untar-anywhere

  • 也许这应该是最佳答案? (3认同)
  • 设置后,很可能需要进行“brew update”以确保新鲜度。我也推荐这个——它确实有效。 (2认同)

Sky*_*and 24

是的。

我修改了安装脚本以不使用sudo并使用您选择的目录。https://gist.github.com/skyl/36563a5be809e54dc139

下载那个,YOUR_HOME在脚本中设置为绝对路径。chmod +x剧本。创建YOUR_HOME/usr/local目录。然后,执行脚本。

./install.rb
Run Code Online (Sandbox Code Playgroud)

.bash_profile,我设置(我不肯定这很重要,很确定):

export HOMEBREW_PREFIX=/The/path/to/YOUR_HOME/usr/local
Run Code Online (Sandbox Code Playgroud)

现在我能:

brew install wget
Run Code Online (Sandbox Code Playgroud)

确保bin目录YOUR_HOME+/usr/local/bin在您的$PATH.

which wget
Run Code Online (Sandbox Code Playgroud)

  • 刚刚再次经历了这个过程,我只想提一下,在脚本运行之前,您还必须在主目录中创建一个 `usr` 目录。此外,当你将 `#{YOUR_HOME}` 添加到 `HOMEBREW_CACHE` 变量时,似乎你需要将单引号更改为双引号才能工作。所以有几个步骤,但是获得 Homebrew 的强大功能绝对值得。 (3认同)
  • 在安装脚本中,我还必须在 `HOMEBREW_CACHE` 变量中添加 `#{YOUR_HOME}` 前缀。那,因为系统管理员已经安装了自制软件,我不得不将 `export PATH=/path/to/home/usr/local/bin:$PATH` 添加到 `.bash_profile` 中。但尽管如此,它似乎效果很好。 (2认同)

Dav*_*zer 16

不。除非你做了重大手术。

原因是 Homebrew 强烈坚持将软件包安装到/usr/local. 事实上,即使你强迫它安装在其他地方,你在brew install用来安装包时也很可能会破坏依赖关系。大多数(如果不是全部的话)这些包都是预编译和链接的,期望存在于/usr/local.

这种坚持的原因/usr/local正是 POSIX 建议安装这样的东西的地方。为了创建/usr/localHomebrew 需要临时管理员凭据来创建目录并分配所有权。

反过来,这使您可以在不提升凭据的情况下安装其他任何东西。

  • 这是错误的,或者至少你对“重大手术”的定义与我的非常不同。5 年多以来,我一直在运行 `brew`,并将前缀设置为我的主目录,并且在那段时间遇到了 1 或 2 个损坏的软件包。 (4认同)