YUM(Yellowdog Updater Modified)的历史背景(建议略过)
由于 YUM 英文名为 Yellowdog Updater Modified,而且历史由来确实有“Yellow Dog”的一部分(所以此处贴上历史背景,建议不用看),因此我叫它“黄狗”,当然这样叫并不规范只是一个乐子。
Yellow Dog Linux
- Yellow Dog Linux: 是一个基于 RPM 包管理系统的 Linux 发行版,最初主要针对 PowerPC 架构(如早期的 Apple Macintosh 计算机)。它的包管理工具称为 Yellow Dog Updater(YUP)。
YUM 的起源
- YUM 的创建: YUM 是由 Jeremy Katz 于 2003 年开发的。其目标是改进 Yellow Dog Linux 中的软件包管理工具 YUP。YUM 旨在提供更易用、更强大的软件包管理功能,特别是在依赖关系管理方面。
名称的由来
- Yellowdog: 取自 Yellow Dog Linux,YUM 最初是为其开发的。
- Updater: 表示软件的主要功能是更新。
- Modified: 表示 YUM 是对原有 Yellow Dog Updater 工具的改进版。
正文如下:
YUM仓库服务
YUM 基本概念
1. YUM (Yellowdog Updater Modified)
- 基于 RPM 包管理:YUM 是基于 RPM 包管理的软件更新机制,主要用于自动化安装、更新和卸载软件包。
- 自动解决依赖关系:YUM 可以自动处理软件包之间的依赖关系,避免手动安装依赖包的繁琐。
- 集中管理的软件仓库:所有软件包都由集中管理的 YUM 仓库提供,用户可以从多个仓库获取所需软件。
2. YUM 软件仓库来源
- 官方仓库:CentOS 或其他发行版官方提供的 RPM 包集合。
- 第三方仓库:由第三方组织或社区提供的 RPM 包集合,如 EPEL(Extra Packages for Enterprise Linux)。
- 用户自定义仓库:用户可以创建自己的 RPM 包集,并配置为 YUM 仓库。
3. Linux系统的安装源
CentOS 和 RHEL
- CentOS 7 和 RHEL 7:默认使用 YUM 仓库源,安装包的格式是
.rpm
结尾的 RPM 包。 - CentOS 8 和 RHEL 8:可以使用 DNF(Dandified YUM),这是 YUM 的下一代包管理工具,具备更快的依赖解析和其他改进功能,但仍然使用
.rpm
格式的包。
Ubuntu 和 Debian
- APT 包管理:Ubuntu 和 Debian 使用的是 APT(Advanced Package Tool)软件包管理系统,安装包的格式是
.deb
结尾。APT 通过类似于 YUM 的方式管理软件包,但与 RPM 包管理系统不同。
YUM 仓库设置与配置
1. YUM 仓库的提供方式
- FTP 服务:例如,
ftp://your-repo-url/...
- HTTP 服务:例如,
http://your-repo-url/...
- 本地目录:例如,
file:///your-local-directory/...
2. YUM 仓库配置文件示例
配置示例
[test]
name=test
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
gpgcheck=0
enabled=1
3. 搭建本地与在线混合 YUM 仓库
- 本地仓库配置:将本地目录配置为 YUM 仓库,例如使用 ISO 文件作为源。
[test1]
name=test1
baseurl=file:///mnt
gpgcheck=0
enabled=1
priority=1 # 优先级,数字越小优先级越高
- 在线仓库配置:如阿里云的 EPEL 源。
[test2]
name=test2
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
gpgcheck=0
enabled=1
priority=2
YUM 命令与运用
1. 基本命令
- 查看包列表:
yum list
:显示所有可用包或指定包名的信息。
- 安装与更新包:
yum install [包名]
:安装指定软件包。yum update [包名]
:更新指定软件包。yum upgrade [包名]
:升级系统中的软件包,通常包括内核升级。
- 卸载包:
yum remove [包名]
:卸载指定软件包。
- 查看操作历史:
yum history
:查看当前 yum 操作历史。yum history undo [序号]
:撤销某次操作。yum history redo [序号]
:重新执行某次操作。
2. 群组操作命令
- 包组列表:
yum grouplist
:显示所有可用包组。
- 安装、更新、卸载包组:
yum groupinstall [包组名]
:安装指定包组。yum groupupdate [包组名]
:更新指定包组。yum groupremove [包组名]
:卸载指定包组。
3. YUM 下载方式
-
方式一:下载并安装:
yum install --downloadonly [软件包名]
:下载但不安装,包存储在/var/cache/yum/x86_64/7/
目录下。
-
方式二:仅下载:
yumdownloader --destdir=/opt [软件包名]
:指定目录下载指定软件包。- 参数
--destdir
是用来指定存放下载的安装包的目录。
-
方式三:使用缓存功能:
默认情况下,yum会在安装完软件之后,自动清理掉安装包。但是也可以通过设置,让yum不清除安装后的安装包。
- 配置
vim /etc/yum.conf
,将keepcache=0
修改为keepcache=1
,保留安装包。此时下载好的软件包默认安置在:/var/cache/yum。
- 配置
案例:搭建 YUM 仓库
1. 搭建 FTP YUM 仓库
服务端配置
-
安装 vsftpd:
yum install -y vsftpd
-
创建并挂载目录:
该步骤涉及到ftp原理,用户远程访问时的,根目录就在 /var/ftp上,所以在此创建挂载目录。
mkdir -p /var/ftp/centos7 mount /dev/sr0 /var/ftp/centos7/ systemctl start vsftpd
客户端配置
-
备份原有 YUM 仓库:
cd /etc/yum.repos.d mkdir repo.bak mv *.repo /repo.bak/ vim local.repo
-
配置 FTP YUM 仓库:
vim /etc/yum.repos.d/local.repo [Local] name=local baseurl=ftp://192.168.110.128/centos7 gpgcheck=0 enabled=1
2. 搭建阿里云源 YUM 仓库
-
安装 wget :
wget是一个从网络上自动下载文件的自由工具,支持HTTP,HTTPS和FTP协议。
yum install -y wget
-
备份原有 YUM 仓库:
移动备份即可。
-
联网后下载并配置阿里云仓库:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo