前言
升级,是不可能滴,你可以重装(重编译)一个 cmake,然后将该版本映射到全局 bin 中替代原先的 cmake,同时还保留了原来的 cmake。
- 缺点是:由于是自己编译安装的,依赖包什么的可能没有 yum 那样系统装那么全面,而且安装完后在 yum 中是没有记录的,所以 rpm 中是显示不出来表示有安装了该版本 cmake 的
- 优点是:低耦合性,想不用的时候就不用,直接改变 bin 的映射地址,也能同时存在多个版本的 cmake 提供给不同需求的用户
PS
不要用 yum list 去查看 yum 有安装了什么包,这是错误的,虽然很多指令使用 list (如pip),但这里的 list 指令是列出从 yum 源中抓下来后,放在了 cache 中的检测出可安装的包列表。
要查看可以用 yum show、yum info 这些指令一个个查,但一般都是用 rpm -qa 指令。
一、下载cmake(可以根据自己所需版本)
1 2 |
wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz tar xvf cmake-3.6.2.tar.gz && cd cmake-3.6.2/ |
二、编译、安装
1 2 3 4 5 |
sudo ./bootstrap sudo gmake sudo gmake install # gmake 是新版本 cmake 在 CentOS 系统中使用的编译、安装指令 # 在 Ubuntu 中还是用 make |
三、添加环境
1 2 3 4 5 6 7 8 9 10 |
# 一般默认装在/usr/local/share # 查看新版本信息 /usr/local/bin/cmake --version # 若是用yum安装了cmake 删除掉 sudo yum remove cmake # 添加软链接到bin目录下 sudo ln -s /usr/local/bin/cmake /usr/bin/ # 测试不用绝对路径使用cmake cmake --version |
结束语
bin目录有几个优先级(系统重要目录,lib相似)
1、根目录下的 bin 一般是指向 /usr/bin 这个目录的
全局程度就是 /bin 优先程度最低
2、usr/bin 是第二全局程度的 bin 目录
这里就是实际的最最最重要的bin目录了,所有用户用的软件指令都是在这里有 .sh 文件或者软链接的。
该目录的全局程度实际上最高(若根目录实际不存在的话),优先度也是较低
3、下一个优先度较高的就是/usr/local/bin
这里的bin目录一般只作用于有管理员权限的用户,但用管理员用户安装包不是默认安装在/usr/share下就是/usr/local/share
这个目录全局程度较低,但优先度较高
4、最高优先度都是每个用户所指定的目录下的 .bashrc 等相应登录设置文件
通过这个文件设置另一个bin目录可以将之加入该用户所有用的bin文件池中
这个bin目录是全局程度最低的,但优先度最高