![/usr/bin 和 /usr/local/bin 之间的冲突](https://linux22.com/image/1212009/%2Fusr%2Fbin%20%E5%92%8C%20%2Fusr%2Flocal%2Fbin%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%86%B2%E7%AA%81.png)
我有一个应用程序(旺盛的 Ctags)安装在/usr/bin
。
我也整理了Emacs从源代码安装其自己的 ctags 版本/usr/local/bin
。
从命令提示符运行 ctags 将运行 Emacs 版本/usr/local/bin
。
有没有办法强制它使用来自的应用程序/usr/bin
?
我可以进入/usr/local/bin
并删除或重命名不需要的 ctags 版本,但我想知道是否还有其他方法。
答案1
编辑您的 PATH,使 /usr/bin 出现在 /usr/local/bin 之前。您可以使用 找到当前路径echo $PATH
。更改此路径取决于您的系统,通常为~/.bashrc
。有这里有疑问以及服务器故障 交易在哪里找到环境变量以及使用哪个环境变量,~/.bashrc
或者~/.bash_profile
:-)
如果您确实安装了可以/usr/local/bin/
“覆盖”系统放入的软件/usr/bin
,则可以创建一个别名来指定每个程序要运行的可执行文件。例如,对于此 ctags 程序,请将其放入您的~/.bashrc
。
alias ctags="/usr/bin/ctags"
(尽管其中一个 SF 链接专门针对 cygwin,但它也适用于其他平台)
答案2
如果您不需要ctags
安装/usr/local
,只需将其删除即可。(这是最好的方法,因为它可以让您免于再次解决现在遇到的问题。)
或者首先阻止 Emacs 安装它和/或让它在安装之前检查是否存在(如何执行取决于您如何安装它)。
最后,你可以告诉 Emacs 路径ctags
如下EmacsWiki:构建标签, 放置
(setq path-to-ctags "<path_to_ctags_executable>")
进入你的初始化文件。