我可以更改 Homebrew 的前缀吗?

Sam*_*off 5 homebrew

不知何故,我的 Homebrew 安装有一个prefix~/.rvm。我想将其设置为默认值/usr/local

这可能吗?

小智 7

一些 Homebrew 的瓶子(二进制包)只能与默认前缀(/usr/local)一起使用,例如rust。但如果您仍然想使用不同的前缀安装它,请使用:

arch -arm64 brew install rust
Run Code Online (Sandbox Code Playgroud)

如果您想知道您已经使用哪个前缀:

brew config | grep HOMEBREW_PREFIX
Run Code Online (Sandbox Code Playgroud)

就我而言是HOMEBREW_PREFIX: /opt/homebrew


Hob*_*sie 6

为了那些必须手动安装 Homebrew 的人的利益。

看一下实际的brew文件是这样的:

HOMEBREW_PREFIX="${HOMEBREW_BREW_FILE%/*/*}"
Run Code Online (Sandbox Code Playgroud)

事实证明,它会自动从安装位置的父目录获取前缀,除非;

# Try to find a /usr/local HOMEBREW_PREFIX where possible (for bottles)
if [[ -L "/usr/local/bin/brew" ]]
then
  USR_LOCAL_BREW_FILE_DIRECTORY="$(symlink_target_directory "/usr/local/bin/brew" "/usr/local/bin")"
  USR_LOCAL_HOMEBREW_REPOSITORY="${USR_LOCAL_BREW_FILE_DIRECTORY%/*}"
  if [[ "$HOMEBREW_REPOSITORY" = "$USR_LOCAL_HOMEBREW_REPOSITORY" ]]
  then
    HOMEBREW_PREFIX="/usr/local"
  fi
fi
Run Code Online (Sandbox Code Playgroud)

只要 Homebrew 安装目录位于该目录的下游(例如 /usr/local/Homebrew),这将从任何符号链接的父目录中获取前缀值到brew可执行文件

如果您已手动直接安装到 usr/local/ 目录中,您仍然需要将 usr/local/bin 文件夹中的符号链接放入 Homebrew/bin/brew 可执行文件中,以获得正确的前缀路径。这也将避免您需要将 Homebrew/bin 文件夹直接添加到 $PATH 中。


Sam*_*off -3

看来我需要

我得到了当前公式的列表brew list

  • “使用所需的前缀重新安装它” - 您能澄清一下如何做到这一点吗? (8认同)
  • 非常不完整的答案! (2认同)