我想在运行 make 时运行 gmake,因此我正在创建一个符号链接。我的 gmake 在里面/usr/local/dist
。我的品牌是 inisde /usr/ccs/bin
。
这是正确的命令吗:ln -s /usr/local/dist/gmake /usr/ccs/bin/make
我的困惑是,我关心吗/usr/ccs/bin/make
?我正在创建一个符号链接,因此如果我在任何地方键入“make”,它应该在/usr/local/dist
右侧运行 gmake 吗?
那么命令应该是:ln -s /usr/local/dist/gmake make
?
答案1
符号链接系统二进制文件通常根本不是正确的方法。这将导致稍后其他软件期望某些二进制名称与某些已知行为相对应的复杂性。听起来你想要的是一个别名。在你的 shell 中运行:
alias make=gmake
现在,每当您输入 make 时,它都会为您运行 gmake。要使其永久化,请将该行添加到 shell 的 rc 文件中(例如~/.bashrc
)。
答案2
mkdir -p ~/bin &&
ln -s /usr/local/dist/gmake ~/bin/make &&
PATH=~/bin:$PATH
这样您就可以控制调用哪个进程(那些具有您PATH
所在位置的~/bin
进程/usr/ccs/bin
)。gmake
make
答案3
您必须链接gmake
到PATH
之前make
,例如 in /usr/bin
。检查make
现在链接的位置(如果是):type make
如果/usr/bin
PATH 中的目录早于make
找到的目录,则可以使用以下命令将其链接到那里:
ln -s /usr/local/dist/gmake /usr/bin/make
也许您必须覆盖现有链接才能创建。我不确定这对于包的更新有多安全。