1 yum仓库简介
yum是一个基于RPM包构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间。
yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以由官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。
yum实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
yum需要依赖于环境,依赖于服务端和客户端,允许跨网络
yum配置文件及命令
yum配置文件
主配置文件
位置:/etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 $basearch代表硬件架构 $releasever系统版本比如7
keepcache=0 //是否保存缓存 0代表不保存,1代表保存
debuglevel=2 //调试级别了解即可
logfile=/var/log/yum.log // 日志文件位置
exactarch=1 //是否允许不同版本的rpm安装
obsoletes=1 //update 的一个参数是否可以允许旧版本的运行
gpgcheck=1 //验证秘钥
plugins=1 //是否允许插件1代表可以
installonly_limit=5 //保存几个内核 5代表5个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
仓库设置文件
位置:/etc/yum.repos.d/*.repo
[root@localhost yum.repos.d]# ls /etc/yum.repos.d/
bak CentOS-Debuginfo.repo CentOS-Sources.repo
CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-Media.repo
日志文件
位置: /var/log/yum.log
yum 命令
查询
| 命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
|---|---|---|
| yum list | 显示所有可用包 | 单个的可安装包 |
| yum info | 显示所有可用包的信息 | 单个具体的信息 |
| yum search | \ | 模糊查找所有的相关信息 |
| yum provides | \ | 精确查找 |
| yum grouplist | 显示所有可用包组 | 显示具体的包组 |
| yum groupinfo | 显示所有的包组具体信息 | 显示具体的包组的具体信息 |
| yum install | \ | 安装具体软件包 |
| yum groupinstall | \ | 安装具体软件包组 |
| yum update | 所有软件升级 | 具体软件升级 |
安装升级卸载
| 命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
|---|---|---|
| yum group update | 所有包组升级 | 具体包组升级 |
| yum remove | \ | 卸载具体软件 |
| yum groupremove | \ | 卸载具体包组软件 |
| yum history | 查看当前yum操作历史 | \ |
| yum history undo | 加入序号卸载序号里安装的软件 | \ |
| yum history redo | 加入序号重新执行序号里的操作 | \ |
搭建yum本地仓库
mount /dev/sr0 /mnt/ 挂载提供安装包和元数据
cd /etc/yum.repos.d/ 切换到客户端的指定目录
mkdir bak 建立文件夹存放网络yum仓库的配置文件
mv *.repo bak/ 将网络源移走,减少干扰
vim local.repo 编写本地yum仓库
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
yum clean all 清理缓存
yum makecache 重新构建元数据