linux 安装cmake

文章目录

  • 一.有三种安装方式
    • 1.通过在官网上下载Binary distributions或者Source distributions
    • 2.通过在官网上下载Source distributions或者在github上克隆cmake的源码(未编译)
    • 3.官网上下载Source distributions的.sh脚本文件
      • (1)**使用软连接添加系统变量**
      • (2)使用配置PATH
        • 遇到的关键性问题
  • 二.删除cmake

一.有三种安装方式

  • 1.通过在官网上下载Binary distributions或者Source distributions

    二进制文件安装方法更加简单,就跟在Windows一样,最后把bin文件添加进系统路径即可
    具体操作
    1.在官网上下载编译好的Binary distributions,解压到到/opt目录(opt用于安装软件),不一定非要解压到系统目录,就好比我们不把软件装在c盘
    2.把bin目录添加到系统变量,必须写入到~/.bashrc, ~/.bash_profile, /etc/bashrc,/etc/profile任意一个,这样才能永久生效。
    方法参考这里

在这里插入图片描述

  • 2.通过在官网上下载Source distributions或者在github上克隆cmake的源码(未编译)

因为cmake是c语言编写的,所以使用源文件安装的时候需要先对cmake进行编译形成可执行文件,具体过程看github下载页面后有介绍,按其步骤操作。
因为涉及编译,所以过程也会慢一些

  • 3.官网上下载Source distributions的.sh脚本文件

    1.下载后先进入/opt目录,因为执行.sh之后会在当前目录安装cmake
    2.使用软连接或添加PATH的方式把cmake目录下的bin放入系统变量。

    • (1)使用软连接添加系统变量

      因为软连接就是在指定目录创建一个原文件的快捷方式如图但记住 ln src target都必须是绝对路径
      在这里插入图片描述
      所以我们完全可以直接在/usr/local/bin中为cmake的bin目录中的所有文件创建软连接这里特别注意我们知道系统只会去/usr/local/bin目录寻找相关的命令,如这里的cmake,如果我们ln -s /opt/cmake-3.27.1-Linux-x86_64.sh/bin/ /usr/local/bin的话系统就只能寻找到bin而不能寻找的cmake命令,所以需要为cmake的bin目录中的所有文件创建软连接。

sudo ln -s /opt/cmake-3.27.1-Linux-x86_64.sh/bin/* /usr/local/bin
注意这里不是让/usr/local/bin目录变成一个链接,而是说把 /opt/cmake-3.27.1-Linux-x86_64.sh/bin/下的所有文件的链接都放入/usr/local/bin目录
硬连接教程

  • (2)使用配置PATH

      1. 修改~/.bashrc, ~/.bash_profile, /etc/bashrc,/etc/profile任意一个
        在文件末尾追加环境变量
        在这里插入图片描述
  • 2.source /etc/bashrc刷新即可

  • 3.更多修改~/.bashrc配置文件的操作参考

  • 遇到的关键性问题

    我们在添加环境变量的时候发现cmake的文件夹为cmake-3.29.2-linux-x86_64,我们想更改文件夹的名字为cmake-3.29.2,首先使用mv <现文件夹> <目标文件夹>,但是发现移动后出现文件丢失。
    然后尝试cp,但是我们如果直接cp cmake-3.29.2-linux-x86_64 cmake-3.29.2,就会把cmake-3.29.2-linux-x86_64原封不动的复制到cmake-3.29.2中,但是我们需要的是期子目录而不是它。解决方案是:1.使用cp cp cmake-3.29.2-linux-x86_64/* cmake-3.29.2这样最简单最好用
    2.使用sudo ls cmake-3.29.2-linux-x86_64 | xargs -I {} cp cmake-3.29.2-linux-x86_64/{} cmake-3.29.2即可将子目录进行复制

二.删除cmake

先使用find找出所有cmake的文件,注意看find的cmake文件情况,然后灵活使用*make 或 *make*进行正则匹配相应文件然后删除

  • 1.通过管道

    sudo find / -name "*cmake" | xargs sudo rm -rf 
    

    如果要把find结果支持作为多个命令的参数,则

    sudo find / -name "*cmake" | xargs -I {} bash -c 'sudo rm -rf {} ; cat {}' 
    加bash -c ' '才支持多参数传递
    - I {}支持后面命令中的{}替换
    

    find /表示从根目录开始指定参数-name进行查找,然后把查找的结果传给rm。xargs负责把查找的内容划分为单个的命令参数传给rm,否则rm根本不知道删除哪个文件。xagrs默认以换行符,空格,TAB进行分割传递,因为find的结果都有换行符所有我们比较方便直分割,否则我们可能需要用到其他参数
    xargs参数详情用法点击

  • 2.通过-exec选项

    sudo find / -name "*cmake" -exec sudo rm -rf {} \;
    

    如果要把find结果支持作为多个命令的参数,则

    sudo find / -name "*cmake" -exec bash -c 'sudo rm -rf {} ; cat {}' \;
    加bash -c ' '才支持多参数传递 
    

    1.注意find/表示根目录开始搜索,当然也可以换成其他目录
    2.-exec表示把find找到的每一个文件通过{}传递给rm作参数
    3.-exec后面可以加多个命令,不限制只有rm一个,即可以把find到的每个结果作为参数同时传给多个命令,然后\表示-exec的作用域结束
    -exec可参考

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Centos7升级编译器

Centos7默认编译器版本&#xff1a; gcc5.1之前的编译器&#xff0c;默认是C98标准的&#xff0c;若是编译一些支持C高版本的软件时&#xff0c;难免会出现问题。例如&#xff1a;编译最新版jsoncpp&#xff0c;会有如下问题&#xff1a;&#xff08;原因是&#xff1a;std在C9…

【剪映专业版】04图片滚动轮播

【剪映专业版】04图片滚动轮播 1.导入图片&#xff0c;3张及以上效果更好 2.点击画面&#xff0c;选择背景填充&#xff0c;颜色&#xff0c;选择合适的颜色 3.缩放图片至合适大小&#xff0c;并将第二张图片拖动到单独的轨道&#xff08;画中画&#xff09;。在第一张和第二张…

DaVinci Fusion Studio 19 for Mac/win:影视后期特效合成的巅峰之作

在影视后期制作的广袤天地里&#xff0c;一款强大的特效合成软件如同一位技艺高超的魔法师&#xff0c;能够化腐朽为神奇&#xff0c;将普通的影像素材转变为震撼人心的视觉盛宴。而DaVinci Fusion Studio 19&#xff0c;正是这样一款备受影视从业者推崇的巅峰之作。 无论是Ma…

GITEE本地项目上传到远程

由于需要&#xff0c;我这边将本地的仓库上传至GITEE。之前在网上搜索了相关的文档&#xff0c;但是步骤很繁琐&#xff0c;我这边介绍一个非常简单的。 一、在GITEE新建仓库 跟着指引一步步新建。 二、打开本地仓库&#xff0c;删除.git文件 默认情况下不会有这个.git文件&a…

MySQL主要内容

1&#xff0c;在表中插入数据 插入值的类型&#xff0c;必须和字段的类型保持一致 - 如果数据类型是字符串&#xff0c;必须引号引起来&#xff0c;数字的话&#xff0c;可以不加 - 插入的数据顺序和字段的顺序必须保持一致 格式一&#xff1a;向表中插入数据 insert in…

智慧中药煎配系统:自动化煎药管理,传统中医焕发现代魅力-亿发

传统中医药服务迎来了全新的发展契机。亿发中药煎配系统&#xff0c;利用现代通信技术和自动控制技术&#xff0c;结合智能制造、大数据和物联网等现代化信息技术&#xff0c;革新中药煎制的方式&#xff0c;实现了100%数字化和全流程信息追溯&#xff0c;从根本上保障了药效和…

谷粒商城实战(017 业务-单点登录)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第231p-第p235的内容 介绍 单点登录&#xff08;Single Sign-On&#xff0c;SSO&#xff09;是一种身份验证服务&#xff0c;允许用户使用一组凭…

【论文笔记】设计一款针对情境障碍的视力减弱型文件浏览应用程序(下)

论文关键点 ps&#xff1a;这篇文章可以学习的内容比较多&#xff0c;笔记内容也比较丰富因此本次论文笔记会分为上下期 提出的问题&#xff1a; 不方便视觉障碍的情况下(通勤、走路、眼睛疲劳也算)会用text-speech 系统,但是这种听觉是线性的,不适合skim 推导出了融合听觉和…

“数据中心的秘密武器:ADOP AOC和DAC线缆的选择与优势”

&#x1f335;【DAC电缆和AOC电缆因其低延迟、低功耗和低成本而广泛应用于数据中心的高性能计算网络布线系统。DAC 电缆和 AOC 电缆有多种配置&#xff0c;以满足网络要求。每款产品均提供 10G SFP、25G SFP28、40G QSFP 和 100G QSFP28 数据速率&#xff0c;并提供从 40G 到 4…

慧明咨询:成绩公式,发现未知,助力进步

在当今社会,数以万计的学子面临着激烈的教育竞争。2000万的中考生、1000万的高考生、300万的考研生以及500万的国考备考者,都在为了通过这“独木桥”而战。 面对有限的优质学区、师资力量的不足、以及巨大的心理压力,学生及其家长们焦虑不已。为此,深圳市慧明咨询顾问有限公司…

工业自动化分体式4-20mA模拟量输出BA型电流传感器

安科瑞薛瑶瑶18701709087 智能型 BA 系列电流传感器应用电磁感应原理&#xff0c;对电网中的交流电流进行实时测量&#xff0c;采用恒流和线性补偿技术&#xff0c;将其隔离变换为标准的直流信号输出&#xff0c;或通过 RS485 接口&#xff08;Modbus-RTU 协议&#xff09;将测…

uniapp开发微信小程序-按需注入和用时注入

官网 根据官网的意思是将 "lazyCodeLoading": "requiredComponents" 配置写在 pages.json 文件中 例如&#xff1a; {"pages": [{"path": "pages/index/index","style": {"navigationBarTitleText":…

【重磅开源】MapleBoot项目开发规范

基于SpringBootVue3开发的轻量级快速开发脚手架 &#x1f341;项目简介 一个通用的前、后端项目模板 一个快速开发管理系统的项目 一个可以生成SpringBootVue代码的项目 一个持续迭代的开源项目 一个程序员的心血合集 度过严寒&#xff0c;终有春日&#xff…

防火墙详细讲解

目录 介绍 防火墙的特征 防火墙的组成 介绍 防火墙&#xff08;firewall&#xff09;是指一种计算机硬件和软件的结合&#xff0c;将内部网和公众访问网&#xff08;如Internet&#xff09;分开的方法&#xff0c;它实际上是一种隔离技术。防火墙主要由服务访问规则、验证工…

如何在官网查看Qt5的所有模块?

2024年4月23日&#xff0c;周二上午 如果你不想一步步来的话&#xff0c;可以直接去这个Qt官方链接 https://doc.qt.io/qt-5/qtmodules.html 第一步&#xff1a;去到Qt官网 https://www.qt.io/ 第二步&#xff1a;点击文档链接 第三步&#xff1a;选择文档中的“Qt5” 第四步…

虚拟化及Docker基础

一、虚拟化 1.1 云端 1.2 云计算服务模式分层 1.3 虚拟化架构 1.3.1 寄居架构 1.3.2 原生架构 1.4 虚拟化产品 1.4.1 仿真虚拟化产品&#xff08;对系统硬件没有要求&#xff0c;性能最低&#xff09; 1.4.2 半虚拟化 &#xff08;虚拟机可以使用真机物理机&#xff09…

宽字符的来历:从ASCII到Unicode,C语言中的宽字符处理

目录 一、ASCII编码&#xff1a;字符世界的开篇 二、Unicode与宽字符的诞生 宽字符类型与宽字符串 三、C语言中的宽字符处理函数 四、宽字符与多字节字符 结语 在计算机科学的发展历程中&#xff0c;字符编码经历了从简单到复杂、从单一语言到全球多语种支持的演变过程。…

第67天:APP攻防-Frida反证书抓包移动安全系统资产提取评估扫描

思维导图 案例一&#xff1a;内在-资产提取-AppinfoScanne AppinfoScanner 一款适用于以 HW 行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具&#xff0c;可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态 WEB …

word页脚的页码全都一样

1. 问题描述&#xff1a; 我的Word不想从首页开始有页码&#xff0c;想从第2页开始有连续页码&#xff0c;但是我的第1~3页码都是正确的&#xff0c;从第4页及之后页码就全为相同的“4”了。 很奇怪&#xff0c;以前每次都是试出来的&#xff0c;没有真的搞懂怎么操作。 如下…

idea插件快速搜索接口位置之RestfulTool平替Apipost-Helper-2.​0

需求 经常需要根据请求路径搜索某接口位置&#xff0c;特点是接口没有斜杠\&#xff0c;所以双击Shrift找不到接口 RestfulTool 和 RestfulToolkit-fix平替 这两个插件在idea2023.3中无法使用&#xff0c;使用的是Apipost-Helper-2.​0来代替&#xff0c;他也有自己的快捷键…