linux 安装cmake

文章目录

  • 一.有三种安装方式
    • [1.通过在官网上下载Binary distributions或者Source distributions](#1.通过在官网上下载Binary distributions或者Source distributions)
    • [2.通过在官网上下载Source distributions或者在github上克隆cmake的源码(未编译)](#2.通过在官网上下载Source distributions或者在github上克隆cmake的源码(未编译))
    • [3.官网上下载Source distributions的.sh脚本文件](#3.官网上下载Source distributions的.sh脚本文件)
  • 二.删除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都必须是绝对路径**   
![在这里插入图片描述](https://file.jishuzhan.net/article/1783105396748062722/b4e1a0476cdf9e33ae8f870103bb40c5.webp)  
所以我们完全可以直接在/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

遇到的关键性问题

我们在添加环境变量的时候发现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可参考

相关推荐
AlfredZhao2 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo3 天前
Linux 彻底且安全地删除文件
linux
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF4 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者5 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo5 天前
Linux系统中网线与USB网络共享冲突
linux
荣--6 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森6 天前
动手实战学 Docker — 从零到集群编排完全指南
运维