Ubuntu系统中多个版本的程序指定默认版本
2022/1/11 7:07:33
本文主要是介绍Ubuntu系统中多个版本的程序指定默认版本,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
最近在编译clickhouse的过程中,遇到了操作系统默认安装了一个clang 10的版本,但编译clickhouse需要安装11版本以上的clang程序,所以就通过命令:
bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
安装了一个最新版本 13的clang程序,具体如下:
可以看到有2个版本的clang;
现在我们要通过update-alternatives 工具,来指定一个系统默认调用的程序版本;
1.首先,我们查看一下系统是否已经有这个clang的配置:执行命令:
update-alternatives --display clang
可以看到系统当前没有默认执行clang程序的配置;
2.创建一个clang的默认程序配置信息;
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100
其中,最后一个参数100,是一个自己指定的优先级(或者叫版本号)的值,这个值越大,说明它的优先级越高,系统在auto模式下从这个值最大的里面选择默认程序;
如下:
第一次设置失败是因为权限的问题,切换到root账号下,就执行成功了;
3.验证是否配置成功
执行命令:update-alternatives --display clang ,结果如下说明创建成功
4.这个时候,我们只是创建了一个clang的默认程序配置,clang++还没有对应的改过来,查看clang++的版本号执行命令:clang++ -v
我们可以看到,还是10的版本;
5.配置clang++的默认执行程序
执行命令:sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-13
执行完命令后,查看版本号结果如下:
我们可以看到,配置成功了;默认的clang++也成了13的版本了;
6.我就想能在2个版本之间随意的切换,怎么办呢?
可以的,我们先找到路径 /usr/bin 路径下,执行ll查看当前路径下的程序,如下图:
我们可以看到,在当前路径下,有一个clang-10、clang-13 以及clang对应的软连接,clang++也类似;
于是我们可以执行如下命令;给clang-10的版本也创建一个配置选项在默认程序的配置文件里;
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-10 90 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-10
结果如下:
看着似乎没有生效,但大家注意,我命令行中的优先级给的是90这个值,是小于13版本给的100的,但他到底创建成功了没?我们通过下个命令 --config来查看,具体命令如下:
sudo update-alternatives --config clang
从结果中,能看到clang-10的配置项已经创建成功了,只不过在auto mode下,系统默认选择的是13的版本,同时当前命令行下,我们可以手动选择默认版本,这里我们输入1,即clang-10对应的编号:
验证一下我们的选择对不,执行命令clang -v查看版本号如下:
我们可以看到,clang的默认版本号已经改成了10版本;再次执行命令:
sudo update-alternatives --config clang
我们选择0,自动模式,结果如下:
我们看到,程序clang的版本号,又切换到了clang-13的版本;
总结:在系统安装了多个程序版本的情况下,可以通过sudo update-alternatives --config 来选择默认的版本号;当然其前提是创建了对应版本的软连接;
这篇关于Ubuntu系统中多个版本的程序指定默认版本的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24怎么修改Kafka的JVM参数?-icode9专业技术文章分享
- 2024-12-23线下车企门店如何实现线上线下融合?
- 2024-12-23鸿蒙Next ArkTS编程规范总结
- 2024-12-23物流团队冬至高效运转,哪款办公软件可助力风险评估?
- 2024-12-23优化库存,提升效率:医药企业如何借助看板软件实现仓库智能化
- 2024-12-23项目管理零负担!轻量化看板工具如何助力团队协作
- 2024-12-23电商活动复盘,为何是团队成长的核心环节?
- 2024-12-23鸿蒙Next ArkTS高性能编程实战
- 2024-12-23数据驱动:电商复盘从基础到进阶!
- 2024-12-23从数据到客户:跨境电商如何通过销售跟踪工具提升营销精准度?