Maven 2 神秘地出现在 $PATH 中

Maven 2 神秘地出现在 $PATH 中

我正在升级到 maven 3,但遇到了一个小问题,maven 2 莫名其妙地出现在我的PATH变量中。我检查了~/.bashrc~/.profile/etc/bash.bashrc/etc/environment/etc/profile但找不到任何地方。我遗漏了什么?

答案1

man bash

当 bash 作为交互式登录 shell 或使用 --login 选项作为非交互式 shell 调用时,它首先从文件 /etc/profile 中读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,然后从第一个存在且可读的文件中读取并执行命令。启动 shell 时可以使用 --noprofile 选项来禁止此行为。

当启动非登录 shell 的交互式 shell 时,如果 /etc/bash.bashrc 和 ~/.bashrc 存在,bash 将从这些文件读取并执行命令。可以使用 --norc 选项禁止此操作。--rcfile file 选项将强制 bash 从 file 而不是 /etc/bash.bashrc 和 ~/.bashrc 读取并执行命令。

由于您已登录到交互式非登录 shell,因此要查找分配的文件PATH/etc/bash.bashrc~/.bashrc并且也是在,因为它是声明系统范围环境变量的默认位置。您还应该检查登录到交互式登录 shell 时获取的目录,以确保其中/etc/environment没有引用或指针需要更改。PATH

如果你没有找到任何关于 的引用PATHmaven-2那么这些文件中一定有某些东西导致了 的PATH改变,也就是说,这些文件中的某些东西触发了其他东西,从而改变了PATH。如果不检查文件内容,很难判断。

如果你想maven-2从中删除PATH

/home/elpinguino/scala-2.10.5/bin:/home/elpinguino/bin:/usr/local/sbin
:/usr/loca‌​l/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
:/opt/apache-maven‌​-2.2.1/bin:/bin:/bin:/opt/apache-maven-3.3.3/bin 

您可以删除目录/opt/apache-maven‌​-2.2.1以便PATH找不到可执行文件,或者PATH再次声明环境变量并丢弃/opt/apache-maven‌​-2.2.1/bin目录并将其放在末尾~/.bashrc

相关内容