yum仓库
一、什么是yum
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间。
YUM 的前身是 YUP(Yellow dog Updater,Yellow dog Linux 的软件更新器),最初由 TSS 公司(Terra Soft Solutions,INC.)使用 Python 语言开发而成,后来由杜克大学(Duck University)的 Linux 开发队伍进行改进,命名为 YUM(Yellow dog Updater,Modified)。 要成功使用 YUM 机制来更新系统和软件,需要有一个包含各种 rpm 安装包文件及其依 赖软件的软件仓库(repository),提供软件仓库的服务器也称为“源”服务器。在客户机中只 要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件。
二、yum的工作原理
yum依赖于环境,依赖于服务端和客户端,允许跨网络。
YUM基于C/S模式:
-
yum 服务器存放rpm包和相关包的元数据
-
yum客户端访问yum服务器进行安装或查询等
三、YUM的实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
服务器(RPM包和元数据缺一不可):
- RPM包 (存放在包文件夹Packages中)
- 元数据(存放在元数据文件夹repodata中,其中包含:目录(软件的目录),软件的依赖关系,软件的分组)
本地仓库类型:
- 光盘仓库(基本仓库)
- epel 扩展仓库
四、yum配置文件
主配置文件
主配置文件位置:/etc/yum.conf
仓库设置文件
yum仓库文件位置:/etc/yum.repos.d/*.repo
日志文件
日志文件位置:/var/log/yum.log
五、yum的命令
| 命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
|---|---|---|
| yum list | 显示所有可用包 | 单个的可安装包 |
| yum info | 显示所有可用包的信息 | 单个具体的信息 |
| yum search | \ | 模糊查找所有的相关信息 |
| yum whatprovides | \ | 精确查找 |
| yum install | \ | 安装具体软件包 |
| yum update | 所有软件升级,更新内核 | 具体软件升级 |
| yum upgrade | 只更新软件包,但不更新内核 | 具体软件更新 |
| yum remove | \ | 卸载具体软件 |
| yum history | 查看当前yum操作历史 | \ |
| yum history info | \ | 加序号列出某次事务的详细信息 |
| yum history undo | \ | 加序号卸载序号里安装的软件 |
| yum history redo | \ | 加序号重新执行序号里的操作 |
包组:
| 命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
|---|---|---|
| yum grouplist | 显示所有可用包组 | 显示具体的包组 |
| yum groupinfo | 显示所有的包组具体信息 | 显示具体的包组的具体信息 |
| yum groupinstall | \ | 安装具体软件包组 |
| yum group update | 所有包组升级 | 具体包组升级 |
| yum groupremove | \ | 卸载具体包组软件 |
注意:
当使用 “yum remove 软件名” 未将软件包卸载干净时,可以使用“yum history undo 序号”进行卸载,可以完整卸载整个软件包,没有残留。
六、yum仓库搭建方式
软件仓库的提供方式:
-
本地目录:file://绝对路径
-
FTP服务:ftp://ip地址/站点里的路径
-
HTTP服务:http://域名或者ip地址/站点里的路径
七、搭建本地yum仓库
1. 以http方式搭建yum仓库
以http方式搭建yum仓库,在外网和内网的环境下都可以使用,但多用于内网。
服务端:192.168.1.20
客户端:192.168.1.30
操作过程
步骤1:服务端安装hhtpd服务程序。
步骤2:服务端切换到/var/www/html/ 目录,新建子目录centos7,并将光驱挂载到centos7目录下。
步骤3:服务端关闭防火墙和selinux,启动httpd服务。
步骤4:客户端切换到/etc/yum.repos.d/目录,新建文件夹,编写yum仓库文件移动到该目录下,创建http.repo文件。
步骤5:清理yum缓存,重新建立元数据,并测试使用yum能否成功安装软件包。
步骤6:安装ftp,yum创建完成。
2. 以ftp方式搭建yum仓库
以ftp方式搭建yum仓库,在外网和内网的环境下都可以使用,但多用于内网。
服务端:192.168.1.20
客户端:192.168.1.30
操作过程
步骤1:服务端安装vsftpd服务程序。
步骤2:服务端切换到/var/ftp/ 目录,新建子目录centos7,并将光驱挂载到centos7目录下。
步骤3:服务端关闭防火墙和selinux,启动vsftpd服务。
步骤4:客户端安装ftp程序,测试ftp服务是否正常
步骤5:客户端切换到/etc/yum.repos.d/目录,新建文件夹,将默认的yum仓库文件移动到该目录下,创建ftp.repo文件。
步骤6:清理yum缓存,重新建立元数据,并测试使用yum能否成功安装软件包。
步骤7:安装httpd,yum创建完成。
3.搭建阿里云仓库
国外云仓库比较慢,可以使用阿里云仓库代替。
操作过程
步骤1:切换到 yum.repo.d 目录:cd /etc/yum.repos.d/
步骤2:创建bak目录:mkdir bak
步骤3:将自带的仓库移走:mv *.repo bak
步骤4:查看bak目录:ls
步骤5:创建阿里云仓库文件:vim aliyun.repo
【aliyun】
name=aliyun
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
https://mirrors.huaweicloud.com/epel/$releasever/x86_64
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64
gpgcheck=0
[epel] //epel源仓库
name=epel
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=0
[update] //更新包仓库
name=update
baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=0