CentOS 基础命令 III

本文介绍了CentOS系统中的软件包管理,包括RPM包管理器的原理和命名规范,以及高级包管理器YUM(在CentOS 8中被DNF替代)如何解决依赖问题。还提到了软件仓库配置、常见的命令示例以及如何利用国内镜像加速下载。
摘要由CSDN通过智能技术生成

软件包管理

为了满足应用的需求,我们通常会在系统上安装各种相应的软件,并在维护中会对软件进行升级和删除,甚至是退回到旧的版本。 CentOS 中主要有三种类型的软件管理方式,分别为源代码编译、RPM 包管理和 YUM 管理方式。其中 YUM 管理方式是对用户最友好的方式,其次为 RPM 方式,最不友好的是源代码编译方式。源代码编译也可生成 RPM 包, RPM 包又可让 YUM 解决资源依赖问题。

“RPM Package Manager” 是 RPM 的递归缩写,也就是 RPM 软件包管理器。RMP 包管理器可以生成 RMP 软件包、安装、查询、升级、卸载、校验软件包和对 RPM 数据库进行管理。 RPM 软件包是以 .rpm 为扩展名,其命名规范为:

name-version-release.os.arch.rpm

其中 name 为程序名称; version 为程序版本号; release 为发行号,用于标识 RPM 包本身的发行号,与源程序的 release 号无关; os 为 RPM 包支持的操作系统版本,如 el6、el7、el8 等; arch 为系统架构,如 i686、x86_64、amd64、ppc(power-pc)、noarch(即不依赖平台)。

例如:

openssh-server-8.0p1-4.el8_1.x86_64
|-----1------| |-2-| 3 4      5

1-->name  2--> version  3-->release  4-->os  5-->arch

RPM 具有一组 rpm 命令集来实现包管理器的功能。虽然打包系统定义了一种依赖模型,可以查询到所依赖的软件和库,但有时会陷入令人头痛的包依赖地狱(package dependency hell)。 高级包管理系统 YUM 此时就可以大放光彩了,其可以自动下载软件包并解决包依赖问题。在 CentOS 8 中开始采用 DNF 代替 YUM,这两个命令的大部分选项是兼容的,所以就不必太过担心了。

高级包管理系统 YUM 的两大基础设施,分别为软件包仓库和与软件包操作相关的命令集,以实现软件包的安装、查询、升级、卸载、校验软件包和对 RPM 数据库进行管理。

CentOS 软件包仓库库配置文件位于 /etc/yum.repo.d 内。

$ yum repolist all			/* 列表所有仓库 */

repo id /* 仓库 iD */        repo name  /* 仓库名称 */   status	/* 仓库状态 */
AppStream                    CentOS-8 - AppStream        enabled	/* enabled 表示仓库开启 */
AppStream-source             CentOS-8 - AppStream Source disabled	/* disabled 表示仓库关闭 */
BaseOS                       CentOS-8 - Base             enabled
BaseOS-source                CentOS-8 - BaseOS Sources   disabled
Devel                        CentOS-8 - Devel WARNING! F disabled
HighAvailability             CentOS-8 - HA               disabled
PowerTools                   CentOS-8 - PowerTools       disabled
base-debuginfo               CentOS-8 - Debuginfo        disabled
c8-media-AppStream           CentOS-AppStream-8 - Media  disabled
c8-media-BaseOS              CentOS-BaseOS-8 - Media     disabled
centosplus                   CentOS-8 - Plus             disabled
centosplus-source            CentOS-8 - Plus Sources     disabled
cr                           CentOS-8 - cr               disabled
...

列表的内容与 /etc/yum.repo.d 内的仓库配置文件 .repo 相对应。仓库配置文件常用参数如下:

$ cat /etc/yum.repos.d/CentOS-Base.repo

# 井号起始的为注释内容。
# 远程仓库系统会根据您的 IP 地址自动选择相匹配的地理区域的仓库镜像。

[BaseOS]				/* 仓库 ID。不能和其它仓库 ID 重复。*/
name=CentOS-$releasever - Base		/* 仓库名称。*/
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra	/* 仓库镜像列表地址。*/
#baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/				/* 仓库地址。*/
gpgcheck=1				/* gpg 测试,以验证包的完整。*/
enabled=1				/* 是否开启此仓库。*/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial	/* gpg 公钥位置。*/

除了 CentOS 官方提供的仓库外,还可以使用第三方仓库。

CentOS 官方仓库及其推荐的第三方仓库介绍:
https://wiki.centos.org/action/show/AdditionalResources/Repositories?action=show&redirect=Repositories。

CentOS 软件仓库国内及其它地理区域的镜像:
CentOS 6 http://isoredirect.centos.org/centos/6/isos/
CentOS 7 http://isoredirect.centos.org/centos/7/isos/
CentOS 8 http://isoredirect.centos.org/centos/8/isos/

直接取 CentOS 软件仓库镜像的主域名,就可以看到各大网站提供的所有软件仓库。

清华大学镜像: https://mirrors.tuna.tsinghua.edu.cn/
阿里云镜像:https://developer.aliyun.com/mirror/
华为镜像:https://mirrors.huaweicloud.com/
网易三石镜像:http://mirrors.163.com/

为了提高软件包下载速度,我们还可以直接设置国内仓库的地址。

示例:

/* 国内远程仓库*/

/* 添加网易 docker-ce 仓库。*/
$sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.163.com/docker-ce/linux/centos/docker-ce.repo
 
$cat /etc/yum.repos.d/docker-ce.repo

[docker-ce-stable]
name=Docker CE Stable - $basearch
#baseurl=https://downl
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值