/usr/bin 和 /usr/local/bin 之间的冲突

csc*_*hol 5 linux unix

我在 /usr/bin 中安装了一个应用程序(Exuberant Ctags)

我还从源代码编译了Emacs,它在 /usr/local/bin 中安装了自己的 ctags 版本。

从命令提示符运行 ctags 从/usr/local/bin运行 Emacs 版本。

有没有办法强制它使用/usr/bin 中的应用程序?

我可以进入 /usr/local/bin 并删除或重命名不需要的 ctags 版本,但我想知道是否还有其他方法。

jti*_*man 13

编辑您的 PATH,使 /usr/bin 出现在 /usr/local/bin 之前。您可以使用 找到您当前的路径echo $PATH。要更改这取决于您的系统,通常是~/.bashrc. 这里ServerFault 上存在一些问题涉及在哪里可以找到环境变量以及使用哪些变量,~/.bashrc或者~/.bash_profile:-)

如果您确实安装了/usr/local/bin/“覆盖”系统放入的软件/usr/bin,您可以创建一个别名来指定在每个程序的基础上运行哪个可执行文件。例如使用这个 ctags 程序,把它放在你的~/.bashrc.

alias ctags="/usr/bin/ctags"
Run Code Online (Sandbox Code Playgroud)

(虽然其中一个 SF 链接是关于 cygwin 的,但它也适用于其他平台)

  • 我想我更喜欢为它设置别名的选项。/usr/local/bin 的全部*点*是它覆盖了系统默认值。 (4认同)