我有两个g程序位于/usr/local/bin /和/usr/bin /
我想将默认g放在/usr/local/bin /中.但是,我不想更改我的PATH环境变量,因为对于其他一些程序.我更喜欢/usr/bin /中的版本而不是/usr/local/bin /中的版本.这可能吗?
说清楚我的观点:
我希望我的两个程序的默认值为:
g在/usr/local/bin /
/usr/bin /中的python
但是在/usr/local/bin /和/usr/bin /中,两个程序都存在,我该怎么办?
解决方法:
选项1:在路径上创建覆盖文件夹
如果您需要以间接方式调用这些程序(例如,由窗口管理器启动的某些应用程序将调用g或python),您应该编辑路径.您只需在〜/ .bashrc中的路径开头添加一个新文件夹即可:
export PATH=/home/username/.bin:$PATH
并放置两个符号链接指向适当的程序:
ln -s /usr/bin/python /home/username/.bin/python
ln -s /usr/local/bin/g++ /home/username/.bin/g++
这样,一旦你的〜/ .bashrc被正确采购(注销,然后重新登录),一切都应该找到正确的python和正确的g.
选项2:使用bash的别名来跟随
如果你正在寻找一个更轻量级的解决方案,如果你只是直接从bash调用python,你可以在你的〜/ .bashrc中设置一个别名:
alias python=/usr/bin/python
选项3:只需在/usr/local/bin /中更改python的名称
或者你总是可以将/usr/local/bin / python重命名为/usr/local/bin / python-alternate或者其他东西.我不建议在/usr/bin中重命名,因为至少在由包管理器控制的Debian中.通常/usr/local/bin不是.
选项4:在Makefile中指定正确的编译器
如果您的工作流使用make或一些调用make的更广泛的应用程序(例如autotools或cmake),则几乎总有一个选项来指定编译器.例如,您的makefile可能如下所示:
CXX=/usr/local/bin/g++
all:
$(CXX) inputfile.cpp -o outputfile
或者使用cmake配置
cmake -D CMAKE_CXX_COMPILER=/usr/local/bin/g++ ..
不同的程序将使用不同的语法来指定编译器,但您总是可以指定它.
标签:linux,path
来源: https://codeday.me/bug/20190814/1652288.html