ubuntu更新Cmake
CMake
- 先验知识
- 创建软链接
- 如何删除符号链接
- 如何找出失效链接并将其删除
- PATH 优先级
- 查看当前CMake命令的位置
- 高版本 CMake 安装
- 参考
先验知识
创建软链接
ln -s <path to the file/folder to be linked> <the path of the link to be created>
ln 是链接命令,-s 指定此链接为软链接,-s 也可以写为 -symbolic。
ln 命令默认会创建硬链接。
path to the file (or folder) 声明了链接目标,即想要为其创建快捷方式的文件或目录。
path to link 即链接(快捷方式)名称。
\;
如
ln -s /home/james/transactions.txt trans.txt
执行这个命令之后,就可以通过 trans.txt 来访问 /home/james/transactions.txt。对于 trans.txt 的修改会体现到源文件上。
如何删除符号链接
在删除符号链接之前,需要确认这个文件或文件夹确实是符号链接,以免误删源文件。
ls -l <path-to-assumed-symlink>
如:
ls -l /usr/local/bin

使用 rm 删除符号链接
正如我们所见,符号链接只是一种指向源文件(或目录)的文件(或目录)。只要删除链接文件就可以解除这种关系。
rm <path-to-symlink>
如
rm trans.txt
注意,试图执行 rm trans.txt/ 会引发错误,因为 Linux 会把 trans.txt/ 当成目录来处理,要想删除目录还需要提供 r 和 f 等参数,然而这并不是我们想要的。虽然符号链接有可能是文件夹形式的,但我们只需要关心它的名字。
如何找出失效链接并将其删除
当源文件(或目录)被移动或者被删除时,指向它的符号链接就会失效。
如果把 “transactions.txt” 从 /home/james 移动到 /home/james/personal,“trans.txt” 这个链接就会失效。之后尝试访问 “trans.txt” 会引发错误:“No such file or directory”。
如果发现失效的链接,可以很轻松地将其删除。以下方法可以很方便地找出失效链接:
find /home/james -xtype l
这个命令会列出 james 目录下各种类型(如:文件、目录及子目录)的所有失效链接。
传入 -delete 参数就可以将它们删除:
find /home/james -xtype l -delete
PATH 优先级
echo $PATH
$PATH是一个包含多个目录路径的字符串,不同的路径之间使用冒号(:)分隔。包括在 PATH 环境变量中,这样用户可以从任何位置直接运行该目录下的程序,而不需要输入完整路径。
越前面的PATH,优先级越高

- /usr/local/bin 用于存放用户安装的可执行程序,将用户自定义和第三方软件放在 /usr/local 下,可以避免与系统自带的文件发生冲突。
- /usr/bin 用于存放大多数用户命令和应用程序的可执行文件。这些程序通常是系统提供的,供所有用户使用。该目录包含从操作系统的包管理器安装的软件。
- 默认情况下,/usr/local/bin 的优先级比 /usr/bin 高
将 /usr/local/bin 的优先级提高到最前面
export PATH="/usr/local/bin:$PATH"
将 /usr/local/bin 的优先级降低到最后面
export PATH="$PATH:/usr/local/bin"
需要注意的是,修改$PATH变量只会对当前的终端窗口生效。如果要永久地改变$PATH变量的值,在~/.bashrc或~/.bash_profile文件中添加上述命令即可。同时,不同的操作系统可能会有不同的文件名和配置方式,请根据实际情况进行修改。
查看当前CMake命令的位置
which 命令可以告诉您命令的完整路径。如果 CMake 已经安装,并且在您的 PATH 环境变量中,可以通过以下命令找到它:
which cmake
whereis 命令不仅会显示可执行文件的位置,还会显示源代码和手册页的位置。您可以这样使用:
whereis cmake
如果您想在整个系统中查找 CMake,可以使用 find 命令,但这可能会花费一些时间:
sudo find / -name cmake
如果您只想确认 CMake 是否已安装并查看其版本,可以运行:
cmake --version
高版本 CMake 安装
1、检查当前版本
cmake --version
2、删除当前版本,如果你系统中有ROS,请不要执行这一步
sudo apt remove cmake
如果系统中有ROS,请不要执行这一步
其实没有ROS,也可以不执行这一步,无非是多版本共存。
3、 根据自身情况,从 https://cmake.org/download/ 下载对应的bash script.
我的情况,我下载的是 cmake-3.31.0-rc2-linux-x86_64.sh
4、 复制 该文件到 /opt/.
以我的脚本为例,大家不尽相同。
sudo cp cmake-3.31.0-rc2-linux-x86_64.sh /opt/cmake-3.31.sh
5、赋予该脚本可运行权利
chmod +x /opt/cmake-3.*your_version*.sh
6、运行
sudo bash /opt/cmake-3.*your_version*.sh
你需要按两次y进行确认
7、建立软链接
这个脚本将二进制文件安装到了/opt/cmake-3.*your_version*,所以为了使用cmake命令,你需要创立一个软链接。
sudo ln -s /opt/cmake-3.*your_version*/bin/* /usr/local/bin
你原本系统自带的cmake在/usr/bin下,我们现在将这个高版本的cmake软链接到/usr/local/bin下。而默认情况下,后者比前者的优先级要高,可通过前面的先验知识确认。
8、验证
cmake --version
参考
Linux 符号链接教程——如何创建和删除符号链接
Ubuntu设置环境变量顺序
How to upgrade cmake in Ubuntu
相关文章:
ubuntu更新Cmake
CMake 先验知识创建软链接如何删除符号链接如何找出失效链接并将其删除PATH 优先级查看当前CMake命令的位置 高版本 CMake 安装参考 先验知识 创建软链接 ln -s <path to the file/folder to be linked> <the path of the link to be created>ln 是链接命令&…...
CMOS晶体管的串联与并联
CMOS晶体管的串联与并联 前言 对于mos管的串联和并联,一直没有整明白,特别是设计到EDA软件中,关于MOS的M和F参数,就更困惑了,今天看了许多资料以及在EDA软件上验证了电路结构与版图的对应关系,总算有点收…...
从IT高管到看门大爷:53岁我的职场华丽转身
该文讲述了一位1971年出生的男士,在53岁时因日企撤资而失业。他曾是IT技术员,后晋升为IT高管兼工会主席,但失业后数百份简历石沉大海,面试也因年龄被取消。他意识到年龄是求职的障碍,开始调整心态,降低期望…...
Redis入门到精通(三):入门Redis看这一篇就够了
文章目录 Redis分布式锁的实现原理Redis实现分布式锁如何合理的控制锁的有效时常?**redisson实现的分布式锁**redisson实现的如何保证主从一致性 Redis的集群方案1.主从复制主从数据的同步原理全量同步增量同步 2.哨兵模式Redis的集群脑裂是什么?3.分片集…...
IP基本原理
IP的定义 当前唯一的网络层协议标准定义数据网络层的封装方式、编址方法 MTU 最大传输单元接口收发数据支持的单个包的最大长度不同二层链路类型的接口的MTU不一致。以太网接口默认MTU1500Byte。PPPoE接口默认MTU1480Byte。 IP头部封装格式 IP 头部长度不固定,2…...
数据分析题面试题系列2
一.如何估算星巴克一天的营业额 a.需求澄清:区域?节假日?产品范围? b.收入销售杯数*单价(营业时间*每小时产能*每小时产能利用率)*平均单价 Hypo该星巴克门店的营业时间为12小时(取整&#x…...
uniapp 单表、多级动态表单添加validateFunction自定义规则
uniapp 多级动态表单添加自定义规则 在uniapp制作小程序时,当涉及到需要设置validateFunction的校验规则时。可能遇到的问题 1、validateFunction不生效,没有触发 2、多层级表单怎么添加validateFunction自定义校验规则 本文将以单表单校验和多表单校…...
FPGA高端图像处理培训第一期,提供工程源码+视频教程+FPGA开发板
目录 1、FPGA图像处理培训现状分析2、本FPGA图像处理培训优势亮点架构全起点高实用性强项目应用级别细节恐怖工程源码清晰 3、本FPGA图像处理培训内容介绍图像处理基本框架图像前处理框架图像中处理框架图像前中处理框架图像后处理框架图像中后处理框架图像处理仿真框架视频教程…...
顺序表的实现(数据结构)——C语言
目录 1.结构与概念 2.分类 3 动态顺序表的实现 SeqList.h SeqList.c 创建SLInit: 尾插SLPushBack以及SLCheak(检查空间是否足够): 头插SLPushFront: 尾删SLPopBack 头删SLPopFront 查找指定元素SLFind 指定…...
【VUE】Vue中 computed计算属性和watch侦听器的区别
核心功能不同 computed 是一个计算属性,其核心功能是基于已有的数据属性计算得出新的属性值。当某个依赖的数据发生变化时,computed 会自动重新计算并更新自己的值。因此,可以将 computed 看做是一种“派生状态”。 watch 是一个观察者函数&…...
linux线程 | 同步与互斥 | 深度学习与理解同步
前言:本节内容主要讲解linux下的同步问题。 同步问题是保证数据安全的情况下,让我们的线程访问具有一定的顺序性。 线程安全就规定了它必须是在加锁的场景下的!!那么, 具体什么是同步问题, 我们加下来看看吧…...
Tkinter Frame布局笔记--做一个简易的计算器
#encodingutf-8 import tkinter import re import tkinter.messagebox import tkinter.simpledialog import sys import os def get_resources_path(relative_path):if getattr(sys,frozen, False):base_pathsys._MEIPASS#获取临时文件else:base_pathos.path.dirname(".&q…...
算法专题八: 链表
目录 链表1. 链表的常用技巧和操作总结2. 两数相加3. 两两交换链表中的节点4. 重排链表5. 合并K个升序链表6. K个一组翻转链表 链表 1. 链表的常用技巧和操作总结 常用技巧 画图!!! 更加直观形象, 便于我们理解引入虚拟头节点, 方便我们对链表的操作, 减少我们对边界情况的考…...
MySQL中关于NULL值的六大坑!你被坑过吗?
NULL值是我们在开发过程中的老朋友了,但是这个老朋友在MySQL中有很多坑,我通过这篇文章来总结分享一下,欢迎大家在评论区分享你的看法和踩坑经历。 1、NULL不等于NULL 在MySQL中,执行以下SQL会返回NULL 假如t表有以下数据&#…...
学生学习动机测试:激发潜能,引领未来
学习动机、学习兴趣和学习目标制定是影响学生学习成效的三个关键因素。通过对学生学习动机的测试,我们可以深入了解学生的学习状态,进而采取针对性的措施,激发他们的学习潜能,引导他们走向更加光明的未来。本文将从学习动机、学习兴趣和学习目标制定三个方面,详细探讨学生…...
基于SSM党务政务服务热线管理系统的设计
管理员账户功能包括:系统首页,个人中心,用户管理,部门管理,办事信息管理,信息记录管理,系统管理 前台账号功能包括:系统首页,个人中心,部门,信息…...
OSI参考模型详解:初学者指南与实践案例
OSI参考模型详解:初学者指南与实践案例 OSI(Open System Interconnect)参考模型是一个由国际标准化组织(ISO)提出的七层网络分层模型,它为全球所有互联计算机系统提供了一个通用的通信框架,解决…...
S7-200 SMART 与 S7-1200 之间 TCP 通信— S7-200 SMART 作为服务器
TCP 协议通信 TCP 通信为面向连接的通信,需要双方都调用指令以建立连接及交换数据。S7-200 SMART 与 S7-1200 通过 TCP 通信,在 S7-1200 调用 T-block 指令 ( TCON, TDISCON, TSEND, TRCV ) ,在 S7-200 SMART 调用 Open User Communication …...
Java @RequestPart注解:同时实现文件上传与JSON对象传参
RequestPart注解:用于处理multipart/form-data请求的一部分,通常用于文件上传或者处理表单中的字段。 java后端举例: PostMapping("/fileTest")public AjaxResult fileTest(RequestPart("file") MultipartFile file,Req…...
深度学习基础知识-02 数据预处理
深度学习的数据预处理通常包括: 1.数据清洗:去除错误或不完整的数据。 2.归一化:调整数据范围,如将像素值缩放到0-1。 3.数据增强:通过旋转、缩放等方法增加数据多样性。 4.数据划分:将数据分为训练集、验证…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined.
这个警告表明您在使用Vue的esm-bundler构建版本时,未明确定义编译时特性标志。以下是详细解释和解决方案: 问题原因: 该标志是Vue 3.4引入的编译时特性标志,用于控制生产环境下SSR水合不匹配错误的详细报告1使用esm-bundler…...
