Linux 的软件包管理器 yum
- yum 是什么
- 什么是软件包
- 查看软件包
- yum 命令行工具
- yum 配置文件
- yum 凭什么可以支持下载呢?
- yum 生态
- yum 社区
- yum 的故障排除和资源支持
- yum 的持续集成和持续交付
yum 是什么
Yum(Yellowdog Updater Modified)是一个在 Linux 操作系统上用于管理软件包的包管理工具,它主要用于在 Red Hat Enterprise Linux (RHEL)、CentOS、Fedora 和其他基于 RPM 的 Linux 发行版上搜索、下载安装、更新和移除(卸载)软件包
在某种程度上,可以说yum与Linux系统中的包管理器(例如Fedora和CentOS的yum/dnf、Debian的apt等)在功能上类似于iOS中的App Store。它们都提供了一种方便的方式来搜索、安装、更新和管理软件包。
什么是软件包
在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序
但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,然后就可以直接进行安装了
软件包和软件包管理器,就好比 “应用App
” 和 “应用商店App Store
” 这样的关系.
查看软件包
通过 yum list
命令可以罗列出当前一共有哪些软件包. 由于包的数目可能很多很多,这里我们需要使用 grep
命令只筛选出我们想要查看的包
例如:yum list | grep lrzsz
结果如下:
❗注意:
- “x86_64” 后缀表示64位系统的安装包。“i686” 后缀表示32位系统安装包. 选择包时要和系统匹配
- 中间那一列是软件包的版本号,版本号通常由三部分组成:主版本号、次版本号和修订版本号,它们之间用连字符
-
分隔开来。但是这里没有修订版本号(上图中,主版本号(0.12.20)- 次版本号(36)) - “el7” 表示操作系统发行版的版本。 “el7” 表示的是 Centos7 / redhat7 ( “el6” 表示 Centos6/redhat6)
- 最后一列,os 表示的是 “软件源” 的名称类似于 “华为应用商店”, “小米应用商店” 这样的概念
*(了解)除了os
,在使用yum或者dnf包管理器时,常见的软件源名称还可以是:
epel
:Extra Packages for Enterprise Linux(企业版Linux的额外软件包)。提供了一些官方发布的软件包之外的额外软件包。
remi
:由一个叫做 Remi Collet 的社区成员维护,提供了一些官方软件源中没有的软件包,通常用于Web开发环境。
rpmfusion
:提供了一些官方软件源中没有的软件包,包括一些专有的或受限制的软件。
centos
:CentOS 特有的软件源,类似于 Red Hat Enterprise Linux 的 os 软件源,包含 CentOS 自带的软件包。
base
:同样类似于 os,是基本软件源的一个别名,提供了基本的操作系统组件。
updates
:提供了操作系统更新的软件源,包含了安全补丁和更新的软件包。
extras
:提供了额外的软件包,不是操作系统的一部分,但是可以作为补充提供。
docker
:提供了与 Docker 容器相关的软件包。
yum 命令行工具
yum 提供了一个简单而强大的命令行接口,用于管理软件包。
用户可以使用 yum 命令来搜索、安装、更新和移除软件包,以及处理软件包之间的依赖关系。
例如:
安装软件包:yum install package_name
更新软件包:yum update package_name
移除软件包:yum remove package_name
(package_name为软件包名↑)
❗注意事项:
- 安装软件时由于需要向系统目录中写入内容,一般需要 sudo提权 或者 切到 root 账户下才能完成
- yum安装软件只能一个安装完成再装另一个 → 正在yum安装一个软件的过程中,如果尝试用yum安装另外一个软件,yum会报错
yum 配置文件
yum 使用配置文件来管理其行为和设置。
配置文件通常位于/etc/yum.repos.d/
目录下。
用户可以通过编辑配置文件来修改 yum 的行为(例如添加新的存储库、配置代理服务器等)
yum 凭什么可以支持下载呢?
我们Linux系统里有一些配置文件(我们将其称为yum源),里面的内容就会告诉yum未来我们到哪里下载软件
查看yum源的命令:ls /etc/yum.repos.d/
- repos是 “仓库” 的英文简写(repository,仓库),末尾的d指的是目录
如上图所示,yum源↓
CentOS-Base.repo CentOS-Epel.repo epel.repo epel-testing.repo
yum源包含了很多路径,yum安装时就会根据yum源中所指示的下载路径,查找对应的软件
yum 生态
yum 生态系统拥有庞大的用户社区和丰富的文档资源,我们用户可以通过社区论坛、邮件列表、博客文章等获取帮助和支持。此外,官方文档和教程也提供了详细的指导和使用说明,帮助用户更好地理解和使用 yum 工具
yum 社区
yum 生态系统依赖于一个庞大的社区和贡献者群体。这个社区包括了开源爱好者、Linux 发行版的开发者、系统管理员等不同背景的人士,他们积极参与到 Yum 的开发、测试和文档编写中,共同致力于改进和完善 yum 工具,使其能够更好地满足用户的需求。
yum 的故障排除和资源支持
yum 生态系统提供了丰富的故障排除和支持资源,帮助用户解决在使用 yum 过程中遇到的问题。这些资源包括官方文档、社区论坛、邮件列表、bug 跟踪系统等,用户可以在这些平台上寻求帮助并与其他用户交流经验。
yum 的持续集成和持续交付
为了保证 Yum 的质量和稳定性,开发团队采用持续集成和持续交付的方式进行软件开发和发布。通过自动化测试、代码审查、版本控制等工具和流程,确保每个版本的 Yum 都经过充分测试和验证,从而提供高质量的软件包管理解决方案。