在bash中选择不同的可执行文件

时间:2011-08-02 14:44:11

标签: bash path makefile solaris

当我想运行make生成一些可执行文件时,它始终使用位于的make/usr/local/bin/make而不是GNU make,可以在/usr/sfw/bin/gmake找到。

我如何告诉操作系统使用GNU make而不是Sun?我需要以某种方式覆盖路径吗?

3 个答案:

答案 0 :(得分:5)

对于名为sameically的两个可执行文件,请重新排序PATH变量中的路径,因为将使用第一个匹配项。

否则,请在~/.profile~/.bashrc文件中定义别名:

alias make="/usr/sfw/bin/gmake"

或功能:

make() { /usr/sfw/bin/gmake "$@"; }

请注意,别名仅在交互模式下有效。脚本不会看到它们。在这种情况下使用函数。

答案 1 :(得分:2)

您可以将/ usr / sfw / bin / gmake链接到/ usr / bin,例如,只要您将其链接到的目录位于PATH变量中的/ usr / local / bin之前 从而

    cd /usr/bin
    ln -s /usr/sfw/bin/gmake make

确保路径中没有制作。 否则你总是可以调用gmake而不是make来使用gnu-make并将make留给sun-version-make。

否则您可以使用上一篇文章中的别名

答案 2 :(得分:1)

如果您手动运行make命令,则只需键入gmake而不是make。它将运行GNU版本(假设您的PATH)变量设置正确。

如果有一个IDE或其他工具正在调用make,你需要告诉它使用gmake而不是make,并且这样做的方式取决于你正在使用的工具。