退出后终端不记得“brew”

退出后终端不记得“brew”

我安装了 Brew for Ubuntu,就像在他们的网站上一样。

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

然后我添加路径:

test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
test -r ~/.bash_profile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bash_profile
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.profile

然后我运行:

 brew install hello

确认工作正常。此命令返回

Warning: hello 2.12 is already installed and up-to-date.

然后我退出终端,打开一个新终端并运行:

brew

这又回来了

Command 'brew' not found, did you mean:

我用

Description:    Ubuntu 20.04.4 LTS

我使用的 bash 是:

/proc/37922/exe -> /usr/bin/bash

在 bash_profile 中,我看到了“测试”和回显。可能出了什么问题……

答案1

下文解释的实际结果:添加所有变量,然后~/.profile注销并重新登录以查看它们是否被“记住”。

了解正在发生的事情

当您关闭终端并重新打开它时,您在当前会话中设置的环境变量将会丢失。

要自动使环境变量可用,必须从适当的初始化文件运行设置它们的命令。在 Ubuntu 上,~/.profile在登录时(即启动登录 shell 时)读取一次。~/.bashrc每次打开交互式终端时运行。

在 Ubuntu 上,.profile是设置当前用户需要随时可用的环境变量的适当位置。 只需在终端提示符下工作时可用的环境变量可以放置在 中~/.bashrc

Ubuntu 使用~/.profile。然而,Bash 会首先查找~/.bash_profile,然后查找文件.bash_login,只有当这些文件不存在时,它才会查找~/.profile

出于我无法理解的原因,您选择~/.bash_profile在系统上创建一个文件,然后向其中添加一些内容~/.profile

了解 1) 这些文件仅在登录时执行并且 2) 如果您创建了~/.bash_profile,则将~/.profile不再使用。

答案2

我正在使用 Ubuntu 20.04 桌面,通过两种方式解决了这个问题:

  1. 在终端首选项 -> 配置文件 -> 命令 -> 勾选以登录方式运行命令

或者

添加eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"~/.bashrc,然后source ~/.bashrc

相关内容