【问题标题】:Choosing between multiple executables with same name in Linux在 Linux 中选择多个同名的可执行文件
【发布时间】:2010-09-29 15:13:42
【问题描述】:

我使用的系统在/usr/bin 中安装了gnuplot。我没有root,但我需要更新版本的gnuplot,所以我安装到$HOME/usr/bin

我将$HOME/usr/bin 添加到我的路径中,但如果我只使用 gnuplot 命令,它仍会执行/usr/bin 中的那个。我宁愿不必在每次必须使用它时都指定$HOME/usr/bin/gnuplot

如何告诉 Linux 使用我的主目录中的那个,而不是 /usr/bin 中的那个?

【问题讨论】:

    标签: linux path


    【解决方案1】:

    可执行文件按 PATH 顺序查找。您需要在路径前添加 ${HOME}/usr/bin,如下所示:

    export PATH="${HOME}/usr/bin:$PATH"
    

    【讨论】:

    • 只是好奇,这是否也适用于其他操作系统?
    【解决方案2】:

    可执行文件按 PATH 顺序查找。您的 PATH 显然设置为 /usr/bin~/usr/bin/ 之前。

    【讨论】:

    • 如果您提供一些文档来支持您的观点会更好。
    【解决方案3】:

    除了如前所述修改 PATH 外,您还可以使用这样的别名(在 BASH 中)

    alias gn=$HOME/usr/bin/gnuplot
    

    然后你只需运行它

    gn
    

    【讨论】:

    • 不太确定硬编码路径是否是别名的好主意。我宁愿用它来指定我一直想要的标志。
    • 在这种情况下,你想要一个特定版本的程序,我认为没有问题。
    • 这个真的好用
    【解决方案4】:

    Bombe 说的没问题。我要补充一点,您应该在用户的 bashrc ($HOME/.bashrc) 中声明用户特定的 PATH 条目,因此您的 PATH 设置仅适用于您的用户。

    【讨论】:

    • 他没有 root,所以我怀疑他是否可以全局更改 PATH :)
    • 请重新阅读我的回答。我声明他应该更改自己用户的 .bashrc,这当然可以由自己的用户(实际上是文件的所有者)写入。
    猜你喜欢
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    相关资源
    最近更新 更多