CentOS7必知必会[1]-软件安装

安装一个 rpm 包

例如从 oracle 官网下载了 linux 版本的 jdk 之后,可以执行如下命令进行安装.

1
rpm -ivh ./jdk-10.0.1_linux-x64_bin.rpm

其实 yum 包管理器的底层就是 rpm 软件管理系统,所以 rpm 原始包,也可以通过 yum 命令进行安装:

1
yum install ./jdk-10.0.1_linux-x64_bin.rpm

有时你可能需要一个 安装或升级 的命令:

1
rpm -Uvh xxx 后面接的软件即使没有安装过,则系统将予以直接安装; 若后面接的软件有安装过旧版,则系统自动升级至新版;

查看一个包是否已存在 rpm 系统

1
rpm -qa | grep 包名
1
yum list installed | grep 包名

查看已安装的 rpm 软件的配置信息

1
rpm -qc 包名

查看磁盘上的一个文件属于哪个 rpm 软件

1
rpm -qf 该文件名

查看某个已安装的 rpm 软件相关文件是否被改动过

1
rpm -V 包名

例如 rpm -V centos-release, 会发现腾讯云改动过我服务器上这个包的配置文件.

查看当前 yum 所使用的仓库源有哪些

1
2
yum repolist
yum repolist enabled // 可以过滤当前可用的源

结果如下:

1
2
3
4
5
6
7
源标识                                                                  源名称                                                                                                 状态
epel/7/x86_64 EPEL for redhat/centos 7 - x86_64 12,495
extras/7/x86_64 Qcloud centos extras - x86_64 448
nginx/x86_64 nginx repo 102
nodesource/x86_64 Node.js Packages for Enterprise Linux 7 - x86_64 80
os/7/x86_64 Qcloud centos os - x86_64 9,591
updates/7/x86_64 Qcloud centos updates - x86_64 2,416

其中 nginx 是按照 nginx 官方教程编写的一个 yum 仓库源配置,而 nodesource 是我按照 node.js 官网通过 yum 额外安装的的一个NodeSource源。而 epel、extras、os、updates 这些是 CentOS 自带的。

而这些源所有的配置文件,都放置在了 /etc/yum.repos.d 下面,其中记录了每个源仓库的具体 url 地址. 可以执行 ll /etc/yum.repos.d 查看:

1
2
3
4
5
6
7
8
9
10
rw-r--r-- 1 root root 1403 1月  28 14:03 CentOS-Base.repo
-rw-r--r-- 1 root root 1309 8月 30 2017 CentOS-CR.repo
-rw-r--r-- 1 root root 649 8月 30 2017 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 220 1月 28 14:03 CentOS-Epel.repo
-rw-r--r-- 1 root root 314 8月 30 2017 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 630 8月 30 2017 CentOS-Media.repo
-rw-r--r-- 1 root root 1331 8月 30 2017 CentOS-Sources.repo
-rw-r--r-- 1 root root 3830 8月 30 2017 CentOS-Vault.repo
-rw-r--r-- 1 root root 99 1月 28 16:30 nginx.repo
-rw-r--r-- 1 root root 472 1月 5 04:39 nodesource-el7.repo

其中 os、updates 这两个仓库地址就记录再 CentOS-Base 这个文件里面(由于我的服务器是腾讯云,所以实际上文件内的镜像地址是被腾讯云改过了的). 实际上如果你通过 rpm -qf /etc/yum.repos.d/CentOS-Base.repo 来查看这个配置文件的来源,你会发现这些 CentOS 开头的配置,其实他们也来自一个 rpm 软件—centos-release-7-4.1708.el7.centos.x86_64。就像是 nodesource-el7.repo 是来自 nodesource-release-el7-1.noarch 这个 yum 安装的 rpm 软件。

禁用和启用已有的 yum 源

1
2
yum-config-manager --enable 源名称
yum-config-manager --disable 源名称

其实本质上就是在修改 /etc/yum.repos.d 下面对应源配置文件的 enable 属性了