Linux下使用update-alternatives管理软链接

前提

假如我们现在有这样的一个需求,在Linux下编译A工程时需要cmake的版本为3.26,编译B工程时需要cmake的版本为3.24,编译C工程时需要cmake的版本为3.22。每个工程必须需要对应的cmake版本,否则无法编译。这样就意味着我们的电脑上有3个版本的cmake,如何对其进行管理切换呢?下面我们介绍update-alternatives这个工具。

update-alternatives介绍

现在我们从官网下载了3个版本的cmake,同时还有我们本地通过apt install安装的cmake。如下图所示:
在这里插入图片描述
我们输入cmake,本质上调用的是我们通过apt install安装的cmake。现在我们要编译A工程,需要cmake的版本为3.26,也就是说输入cmake --version,输出的是3.26。该怎么办呢?
在使用update-alternatives进行操作之前,我们先对/usr/binc/cmake该名为cmake-,加上它的版本号,方便我们观察。这样我们有了四个版本的cmake,分别如下:

  • cmake-3.10.2,路径: /usr/bin/cmake-3.10.2
  • cmake-3.24.0,路径:/opt/cmake-3.24/bin/cmake
  • cmake-3.22.0,路径:/opt/cmake-3.22/bin/cmake
  • cmake-3.26.0,路径:/opt/cmake-3.26/bin/cmake

update-alternatives 注册 --install

在这里插入图片描述
第一步就是注册,使用update-alternatives告诉系统,我都有哪几个版本的cmake。
其中--install表示注册,/usr/bin/cmake表示软链接,cmake表示服务名,/opt/cmake-3.xx/bin/cmake代表cmake的真实路径,后面的数字代表着优先级,数字越大,代表优先级越高。
大白话就是,我们在/usr/bin目录下建立了一个/usr/bin/cmake的软链接,它可以指向不同的cmake版本。
现在我们再次查看cmake的版本,发现已经变为了3.26。
在这里插入图片描述

–list 命令

我们可以使用update-alternatives --list cmake来查看一共有几个不同的cmake。
在这里插入图片描述
注意:这里只会显示我们使用--install注册的cmake,如果我们的电脑上还有一个cmake-3.20,但是没有注册过,它是不会显示的。

–config 命令

加入我们现在想使用3.24版本的cmake怎么办呢?简单,修改软链接对应的真实cmake版本就可以,这个可以使用--config命令。
在这里插入图片描述

删除某一个链接

我们可以使用--query命令来查看cmake的所有链接信息。
在这里插入图片描述其中Priority代表了不同链接的优先级。截至到现在,似乎这个优先级没有起到什么作用,想使用哪个版本的cmake,我们使用--config进行切换就可以了。但有的时候我们想使用优先级最高的cmake,使用--config切换比较麻烦,可以直接使用--auto来切换到优先级最高的cmake。
在这里插入图片描述
默认情况下,cmake的版本都是auto mode(自动模式),自动模式的cmake永远是优先级最高的cmake版本。当然也可使用--config切换为手动模式(manual mode)。

参考链接

  1. https://blog.csdn.net/qq_39945938/article/details/119104134

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/538026.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探新路建“枢纽” 湖南深耕中非经贸合作“试验田”

湖南作为中国与非洲经贸合作的重要窗口,积极推动中非经贸关系的发展和深化。通过构建覆盖全产业链的高效运作模式,湖南企业能够在一周内将肯尼亚干制鳀鱼加工成为麻辣鲜香的劲仔深海小鱼并投入中国市场。此外,湖南还致力于推动非洲优质农产品…

【R语言从0到精通】-3-R统计分析(列联表、独立性检验、相关性检验、t检验)

上两次教程集中学习了R语言的基本知识,那么我们很多时候使用R语言是进行统计分析,因此对于生物信息学和统计科学来说,R语言提供了简单优雅的方式进行统计分析。教程参考《Rlearning》 3.1 描述性统计分析 3.1.1 载入数据集及summary函数 我…

【2024最新】微信公众号怎么开启留言功能

关注微信公众号:怒码少年,回复关键词【电子书】可以免费获取计算机相关电子书 本文首发于:原文阅读-wx公众号:怒码少年 大家好,我是小码。 微信公众号从18年开始,正式关闭了留言功能。自此以后新注册的公…

Spring Boot aop proceed方法小结

刚刚开通了一个公众号,会分享一些技术博客和自己觉得比较好的项目,同时会更新一些自己使用的工具和图书资料,后面会整理一些面试资料进行分享,觉得有兴趣的可以关注一下。 文章目录 前言实操代码揭晓答案 补充一点打完收工&#…

0基础学习SQL注入之万能账号密码(BUUctf例题-[极客大挑战 2019]EasySQL1)

做题 借助例题[极客大挑战 2019]EasySQL1来理解SQL注入中的万能账号密码。 我们现解题,解题过程中的知识点在后面都会说到。 打开网址,我们看到的是这个界面。根据题目提示应该是属于SQL注入类型的 1.寻找注入点,很明显,输入用…

数据结构:线性表————单链表专题

🌈个人主页:小新_- 🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 🏆所属专栏&#xff1…

纯小白蓝桥杯备赛笔记--DAY4(数学数据结构图论)

文章目录 数学质因数分解辗转相除法求最大公约数最小公倍数:快速幂乘法逆元费马小定理 逆元乘法逆元素数判定与埃式筛法朴素素数判定法埃式筛法 图论并查集T3:真题--合根植物DijkstraFloyd 基础算法递归,循环,前缀和,差分STL 数学…

数据分析案例(一):地区收入的PCA主成分分析

练习1 地区收入的PCA主成分分析 0.变量说明 1.导包操作 核心思路:导入基础数据操作库包,PCA、k-means 库包,数据可视化库包 import pandas as pd import numpy as np from sklearn.decomposition import PCA from sklearn.preprocessing i…

宝塔面板安装软件 提示需要[xxxMB]内存 强制不能安装

解决方法: 第一步: 编辑修改/www/server/panel/class/下的文件panelPlugin.py vi /www/server/panel/class/panelPlugin.py注释以下判断的内容: ## 第二步: 重启宝塔面板,然后安装即可 bash bt 1

HarmonyOS实战开发-如何实现对游戏实现基本控制。

介绍 本示例基于H5游戏,通过arkui的button实现对游戏实现基本控制,展示webview的JS注入与执行能力,及native应用与H5的通信能力。 本例的H5游戏页面,由https://yangyunhe369.github.io/h5-game-blockBreaker/ 提供 效果预览 使…

三子棋+迷宫

又水了一篇,嘿嘿不废话了,正文开始 文章目录 1.三子棋(Tic-Tac-Toe)游戏流程解析游戏设计游戏代码实现1. 包含头文件和定义全局变量2. 初始化游戏板3. 打印游戏板4. 玩家行动5. 检查胜利条件6. 主函数下面是完整的C语言代码 2.控…

Codeforces Round 521 (Div. 3)

目录 A. Frog Jumping B. Disturbed People C. Good Array D. Cutting Out E. Thematic Contests F1. Pictures with Kittens (easy version) F2. Pictures with Kittens (hard version) A. Frog Jumping 直接模拟即可注意数据范围需要开long long void solve(){LL a,…

LeetCode-5. 最长回文子串【字符串 动态规划】

LeetCode-5. 最长回文子串【字符串 动态规划】 题目描述:解题思路一:动态规划五部曲解题思路二:动态规划[版本二]解题思路三:0 题目描述: 给你一个字符串 s,找到 s 中最长的回文 子串 。 如果字符串的反序…

kubernetes应用的包管理工具---Helm的安装、部署、构建Helm Chart、分发

kubernetes应用的包管理工具—Helm的安装、部署、构建Helm Chart、分发 文章目录 kubernetes应用的包管理工具---Helm的安装、部署、构建Helm Chart、分发1. 引入Helm的原因1.1 没有使用Helm的部署1.2 使用Helm部署 2. Helm核心概念3. Helm架构3.1 V2版本3.2 V3版本 4. Helm安装…

品牌百度百科词条创建多少钱?

百度百科作为国内最具权威和影响力的知识型平台,吸引了无数品牌和企业争相入驻。一个品牌的百度百科词条,不仅是对品牌形象的一种提升,更是增加品牌曝光度、提高品牌知名度的重要途径。品牌百度百科词条创建多少钱,这成为了许多企…

基于SpringBoot+Vue的高校会议室预定管理系统(源码+文档+部署+讲解)

一.系统概述 伴随着我国社会的发展,人民生活质量日益提高。于是对系统进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套高校会议室预订管理系统,帮助…

【电控笔记0】拉式转换与转移函数

概要 laplace:单输入单输出,线性系统 laplace 传递函数 总结

python+appium调@pytest.mark.parametrize返回missing 1 required positional argument:

出错描述: 1、在做pythonappium自动化测试时,使用装饰器pytest.mark.parametrize(“参数”,[值1,值2,值3]),测试脚本执行返回test_xx() missing 1 required positional argument:“…

Mybatis generate xml 没有被覆盖

添加插件即可 <plugin type"org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>

ssm040安徽新华学院实验中心管理系统的设计与实现+jsp

实验中心管理系统 摘 要 本安徽新华学院实验中心管理系统的设计目标是实现安徽新华学院实验中心的信息化管理&#xff0c;提高管理效率&#xff0c;使得安徽新华学院实验中心管理工作规范化、科学化、高效化。 本文重点阐述了安徽新华学院实验中心管理系统的开发过程&#x…