我可以在 Ubuntu 上使用 Homebrew 吗?

Can I use Homebrew on Ubuntu?

我刚刚尝试使用 Homebrew 和 Linuxbrew 在我的 Ubuntu 服务器上安装软件包,但都失败了。这就是我尝试安装它们的方式:

sudo apt-get install build-essential curl git m4 ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install)"

我收到以下警告:

Warning: /home/tong/.linuxbrew/bin is not in your PATH.

我在 home/etc 中 vi 我的 bash.bashrc 并添加:

export PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"
export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"

然后我尝试 brew doctor 但得到了 No command 'brew' found。我怎样才能在 Ubuntu 上使用 Homebrew?

我刚刚尝试使用 ruby 命令安装它,但不知何故依赖关系没有解决,因此 brew 没有完全安装。但是,尝试通过克隆安装:

git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew

然后将以下内容添加到您的 .bash_profile:

export PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"
export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"

它应该有效..

以下步骤对我有用:

  • 从 github 克隆它

    git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew
    
  • 使用 vi ~/.bash_profile

  • 打开您的 .bash_profile 文件
  • 添加这些行

    export PATH="$HOME/.linuxbrew/bin:$PATH"
    export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"
    export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"
    
  • 然后在您的终端中输入以下行

    export PATH=$HOME/.linuxbrew/bin:$PATH
    hash -r
    

是的,完成了。在您的终端中输入 brew 以检查它是否存在。

因为之前的所有答案都不适用于 ubuntu 14.04 这是我所做的,如果有人遇到同样的问题:

git clone https://github.com/Linuxbrew/brew.git ~/.linuxbrew
PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$(brew --prefix)/share/man:$MANPATH"
export INFOPATH="$(brew --prefix)/share/info:$INFOPATH"

然后

sudo apt-get install gawk
sudo yum install gawk
brew install hello

您可以关注此 link 了解更多信息。

截至 2018 年 2 月,在 Ubuntu(我的是 17.10)机器上安装 brew 非常简单:

sudo apt install linuxbrew-wrapper

然后,在第一次 brew 执行时(只需键入 brew --help),系统会要求您提供两个安装选项:

me@computer:~/$ brew --help
==> Select the Linuxbrew installation directory
- Enter your password to install to /home/linuxbrew/.linuxbrew (recommended)
- Press Control-D to install to /home/me/.linuxbrew
- Press Control-C to cancel installation
[sudo] password for me:

对于推荐的选项,请输入您的密码(如果您当前的用户在 sudo 组中),或者,如果您希望在自己的主文件夹中安装所有依赖项,请按 Ctrl+D。享受吧。

截至 2020 年 8 月(也适用于 kali linux)

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

export brew=/home/linuxbrew/.linuxbrew/bin

test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)

test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)

test -r ~/.profile && echo "eval $($(brew --prefix)/bin/brew shellenv)" >>~/.profile     // for ubuntu and debian

2019 年 10 月 - Ubuntu 18.04 在 WSL 上使用 oh-my-zsh; instructions 在这里工作得很好 -

(首先,使用 sudo apt-get install build-essential curl 文件 git 安装先决条件)

最后创建一个~/.zprofile,内容如下: emulate sh -c '. ~/.profile'

Linux 现在在 brew 中得到正式支持 - 请参阅 Homebrew 2.0.0 blog post. As shown on https://brew.sh,只需 copy/paste 将其输入命令提示符即可:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

您可以按照 Homebrew on Linux docs 中的说明进行操作,但我认为最好了解说明的目的。

了解安装步骤可以节省一些时间


第 1 步:选择位置

首先,重要的是要了解 linuxbrew 将安装在 /home 目录而不是 /home/your-user 中(~ 目录)。
(请参阅答案末尾的原因)。
当您 运行 下面的其他步骤时请记住这一点。

步骤 2:将 linuxbrew 二进制文件添加到 /home :

installation script 会为我们做的:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

第 3 步:检查 /linuxbrew 是否已添加到相关位置

这可以通过简单地导航到 /home.
来完成 请注意,docs 通过在每个命令前添加 test -d <linuxbrew location> 将其显示为一行。

(阅读 here 中有关 test 命令的更多信息)。

第四步:导出相关环境变量到终端

我们需要添加 linuxbrewPATH 并为当前终端添加更多环境变量。

我们可以将以下 exports 添加到终端(等等,不要这样做..):

export PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin${PATH+:$PATH}";

export HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew";
export HOMEBREW_CELLAR="/home/linuxbrew/.linuxbrew/Cellar";
export HOMEBREW_REPOSITORY="/home/linuxbrew/.linuxbrew/Homebrew";
export MANPATH="/home/linuxbrew/.linuxbrew/share/man${MANPATH+:$MANPATH}:";
export INFOPATH="/home/linuxbrew/.linuxbrew/share/info:${INFOPATH:-}";

或简单地 运行(如果您的 linuxbrew 文件夹在其他位置,则 /home - 更改路径):

eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)

(*) 因为 brew 命令尚未被当前终端识别(这是我们现在正在解决的问题),我们必须指定 brew 二进制文件的完整路径:/home/linuxbrew/.linuxbrew/bin/brew shellenv

通过以下方式测试此步骤:

1 ) 运行 brew 从当前终端查看它是否识别命令。

2 ) 运行 printenv 并检查是否所有环境变量都已导出并且您在 PATH.

上看到 /home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin

第 5 步:确保第 4 步在每个终端上 运行ning

我们需要将步骤 4 添加到 ~/.profile(如果是 Debian/Ubuntu):

echo "eval $($(brew --prefix)/bin/brew shellenv)" >> ~/.profile

对于 CentOS/Fedora/Red 帽子 - 将 ~/.profile 替换为 ~/.bash_profile

第 6 步:确保在打开新终端时正在执行 ~/.profile~/.bash_profile

如果您执行了第 5 步并且无法从新终端 运行 brew - 添加一个测试命令,例如 echo "Hi!"~/.profile~/.bash_profile
如果您在打开新终端时没有看到 Hi! - 转到终端首选项并确保 '运行 命令的属性作为登录 shell' 已设置。
here.

中阅读更多内容

为什么安装脚本将 Homebrew 安装到 /home/linuxbrew/.linuxbrew - 从 here:

The installation script installs Homebrew to /home/linuxbrew/.linuxbrew using sudo if possible and in your home directory at ~/.linuxbrew otherwise. Homebrew does not use sudo after installation.
Using /home/linuxbrew/.linuxbrew allows the use of more binary packages (bottles) than installing in your personal home directory.

The prefix /home/linuxbrew/.linuxbrew was chosen so that users without admin access can ask an admin to create a linuxbrew role account and still benefit from precompiled binaries.

If you do not yourself have admin privileges, consider asking your admin staff to create a linuxbrew role account for you with home directory /home/linuxbrew.