yum原理以及客户端配置

我们在使用rpm命令安装rpm包时常常遇到依赖性问题。yum工具可自动解决包的依赖性的问题,轻松快速安装软件包。
yum采用的是client/server模式。这篇文章我分为三部分,来说说yum怎么工作的!

  • yum服务器
  • yum客户端
  • 配置客户端

1、yum服务器

服务器也就是yum仓库,存放着rmp包、元数据metadata等信息。(元数据整理出每个rpm包的基本信息,包括rpm包对应的版本号,conf文件,binary信息,以及很关键的依赖信息)

  • 仓库里面最重要的两个目录
  • /repodata:存放metadata文件
  • /Packges:存放rpm包
  • 我们可以使用光盘作为yum仓库,/repodata的父目录就可以是yum仓库路径。我的光盘挂载在/misc/cd目录下:
[root@CentOS6 ~]#ls /misc/cd
CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6
EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6
EULA             RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6
GPL              repodata                  TRANS.TBL
images           RPM-GPG-KEY-CentOS-6

这里,我们就可以使用/misc/cd作为仓库路径了~

2、yum客户端

当客户端要安装软件时,会按照客户端配置文件里指定的服务器路径,去访问yum服务器,并下载下载metadata缓存到客户端。然后根据metadata确认软件包的版本号,所需要的依赖包等,然后再去yum服务器一次下载安装所需要的rpm包。

  • 客户端配置文件
    • /etc/yum.conf
      此文件提供了yum公共配置,定义了yum客户端基本的信息:
      cachedir:指定元数据缓存路径
      keepcache:安装后是否保留客户端的rpm包
      logfile:指定日志路径
[root@CentOS6 ~]#cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
...以下略
  • /etc/yum.repos.d/*.repo
    yum仓库配置文件都存放在/etc/yum.repos.d/目录下,并且以.repo为文件名尾缀。这些文件指定了具体的仓库名称、路径等信息
    [repositoryID]
    name:仓库名
    baseurl:仓库路径
    enabled:是否使能该仓库
    gpgcheck:是否坚持gpg
    gpgkey:gpgkey路径

3、配置客户端

先观察一下/etc/yum.repos.d/目录情况

[root@CentOS6 ~]#ls /etc/yum.repos.d/
aliyun6.repo  aliyun.repo  backup

可以看到当前已经有两个.repo尾缀的文件。这里我尝试以下自己配置.repo文件

(1)把光盘挂载在/misc/cd,直接用光盘作为仓库

[root@CentOS6 ~]#mount /dev/sr0 /misc/cd
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@CentOS6 rpm-gpg]#df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2      100660656 9007756  86532900  10% /
tmpfs             502056      76    501980   1% /dev/shm
/dev/sda3       50264772   53112  47651660   1% /app
/dev/sda1         991512   34916    905396   4% /boot
/dev/sr0         3878870 3878870         0 100% /media/CentOS_6.9_Final
/dev/sr0         3878870 3878870         0 100% /misc/cd

(2)使用vim /etc/yum.repos.d/local.repo直接新建一个local.repo文件,按照格式把配置写上去:


[root@CentOS6 ~]#vim /etc/yum.repos.d/local.repo 
[Base6.9]
name=repo from cdrom
baseurl=file:///misc/cd
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
gpgcheck=1
enabled=1
  

(3)验证

[root@CentOS6 rpm-gpg]#yum repolist
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
repo id                     repo name                           status
Base6.9                     repo from cdrom                     6,706
repolist: 6,706

当然,这里我使用的是光盘作为仓库,如果你有其他的yum仓库,可以把file:///misc/cd替换掉哦~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 概述 日常的工作中,经常要安装和卸载软件,在linux centos的版本里提供了rpm这个命令进行安装,但...
    ghbsunny阅读 4,056评论 0 3
  • Linux 程序包管理 linux系统中的诸多程序都是由源代码编译或者由二次发行商选择性编译分布,其大部分的程序安...
    魏镇坪阅读 5,930评论 1 8
  • http://blog.csdn.net/mathewsking/article/details/8211273 ...
    liuboxx1阅读 6,239评论 1 1
  • 1 概述 本文中将介绍基于PXE和cobbler两种方式的自动化安装。两种方式实现的效果是一样的,但是cobble...
    ghbsunny阅读 3,518评论 0 6
  • 我也想与你一起做所有那些极尽浪漫的事 深一步浅一步 踏着雪地 你的围巾绕着我的脖颈 我的小手插进你的大衣口袋里 偶...
    毛栗子安阅读 304评论 2 2

友情链接更多精彩内容