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

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

我有一个应用程序(旺盛的 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>")

进入你的初始化文件。

相关内容