PATH配置没有效果

PATH配置没有效果

我有一个关于 PATH 变量及其配置方法的问题。

这个问题源于这样一个事实:正在处理的软件包的安装附带了一个负责配置 PATH 的 bash 脚本。

该脚本无法执行此操作,这就是我接管的地方,并尝试手动执行此操作。

我尝试过一些方法,例如:

PATH=$PATH:~/opt/bin           # or
PATH=~/opt/bin:$PATH           # or
export PATH=~/opt/bin:$PATH    # or
export PATH=$PATH:~/opt/bin    # or
export PATH=$PATH:/opt/bin     # or
PATH=$PATH:/opt/bin            # and
export PATH 

然后我跑:

echo $PATH

看看效果,但似乎没有任何改变。

我在 Linux mint 分区中完成所有这些工作。

我的问题是,在尝试更改 PATH 以使任何更改生效之前,我是否还需要做其他事情?或者仅仅是解决问题的方法无效?

是否有其他方法可以在 PATH 中添加变量(任何类型的软件或类似软件?)

乔治

答案1

PATH 的值最初是在文件内设置的/etc/profile

它是为“默认用户”和“root”设置的(不要编辑它)。
您可以通过在终端中执行以下命令来读取它:

cat /etc/profile

但是,您只想更改您的用户的默认 PATH(因此其他用户可能有不同的 PATH,特别是 user root)。

在 Mint 中(不同版本的 Mint 可能有所不同)和 Gnome 桌面(创建或编辑~/.pam_environment如下)。假设您有一个名为的文本编辑器gedit

$ gedit ~/.pam_environment

并添加(或更改)这一行:

PATH DEFAULT=${PATH}:/opt/bin

写入文件,注销,再次登录,新的 PATH 值应该生效。

这个答案帮助我写下了我的答案。

答案2

您不能通过以下方式更改 shell 进程的 PATH(或任何其他环境变量):跑步一个脚本。

如果脚本修改(和exports)PATH,那么修改只会影响脚本内的环境(以及任何子流程)但不是父进程。

如果要在正在运行的 shell 会话中修改 PATH,则需要修改它直接地在此会话中,例如通过sourceing 脚本而不是跑步它。

$ cat mypath.sh
export PATH=/opt/foo/bin:$PATH
$ echo $PATH
/usr/bin
$ ./mypath.sh
$ echo $PATH
/usr/bin
$ . ./mypath.sh
$ echo $PATH
/opt/foo/bin:/usr/bin

相关内容