安装一个 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
| yum list installed | grep 包名
|
查看已安装的 rpm 软件的配置信息
查看磁盘上的一个文件属于哪个 rpm 软件
查看某个已安装的 rpm 软件相关文件是否被改动过
例如 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
属性了