yum仓库的创建和yum客户端的配置及yum命令详解

简介:

     yum是通过分析RPM的标题数据,根据各软件的相关性制作出属性依赖时的解决方案,然后自动处理软件之间的依赖属性问题,以解决软件包的安装,删除和升级的问题,实现自动安装。

 

    那yum是怎么工作的呢?首先,我们先了解一下几个概念。软件发行者要发布的软件通常会放在一个服务器上,称为yum服务器。然后他们分析这些软件的依赖属性问题,将这些信息记录下来,再将这些信息分析记录成软件相关性的清单列表,这些列表数据和软件所在的位置,我们称为yum仓库。

    yum的工作流程:当客户端有升级,安装,卸载的需求时,yum会向仓库要求清单的更新,等到清单更新到本机的/var/cache/yum中,操作的时候就会用这个清单与本机RPM数据库进行比较,这样就知道该下载或卸载什么软件了。接下来yum会到yum服务器的yum仓库中下载所需要的软件,然后通过RPM机制进行安装或卸载。

 

   yum服务器支持的服务有:

   1,ftp

   2,http

   3,本地的文件

 

   首先,我们来说一下yum服务器的创建,我们以创建本地yum仓库为例:

   1,我们创建一个目录/var/yum,这个目录中存放我们要发布的RPM软件包

 

   2,创建yum仓库需要createrepo命令,如果系统没有这个命令,则需要挂载系统安装光盘,打开Server目录中,安装createrepo这个软件包即可。

   命令为:rpm -i createrepo-0.4.11-3.el5.noarch.rpm(不同系统版本不同)

 

   3,createrepo /var/yum 这个命令就把yum目录创建为了yum仓库,命令执行成功后或在yum目录中生成一个repodata目录,里面会有primary.xml.gz,filelists.xml.gz,other.xml.gz,repomd.xml文件(默认不会有comps-rhel5-server-core.xml这个文件,即yum不支持组包的相关功能)

    primary.xml.gz文件:主要记录yum仓库中所有软件包的包名和相互之间的依赖关系,还包含了每一个rpm包的安装要生成什么文件。

 

    filelists.xml.gz文件:存放yum仓库中每一个RPM包中的文件的相关信息

 

    other.xml.gz文件:存放额外信息,如使用changelog选项显示的信息等。

 

    repomd.xml文件:存放上面三个文件的校验码和时间戳。

 

    这四个文件,会在第一次使用yum命令的时候下载到yum设定的缓存中,如果yum仓库中有软件更新,则primary.xml.gz,filelists.xml.gz,other.xml.gz这三个文件内容就会改变,检测到改变之后,就会从yum仓库下载新的文件。

 

    我们的yum仓库就这样的创建了,很简单吧!

 

    

    yum服务器创建之后,我们系统上要有yum客户端,才能使用yum仓库,yum命令才能正常的工作。

    yum客户端的配置文件有两部分:

    1,/etc/yum.conf  客户端的主配置文件

    [main]  表示这是全局生效的文件

    cachedir=/var/cache/yum  定义的缓存路径,用于下载要安装的软件包等

    keepcache=0   安装之后,缓存中的软件包是否保留(0不保留,1保留)

    debuglevel=2  调试级别

    logfile=/var/log/yum.log  yum安装之后相应的安装日志保存路径

    distroverpkg=redhat-release  说明软件包的格式

    tolerant=1   当同时安装多个软件包时,有的已经安装过了,就会出错,但是设为把这个值设为1之后,就表示会忽略已安装的继续安装

    exactarch=1  是否精确匹配硬件平台版本,0表示禁用,1表示启用

    obsoletes=1  是否检查已废弃的包,0表示禁用,1表示启用

    gpgcheck=1  安装之前是否坚持软件包的签名,0表示禁用,1表示启用

    plugins=1   是否启用插件功能,0表示禁用,1表示启用

    metadata_expire=1h  源数据的过去时间

    

    2,/etc/yum.repos.d/*.repo  每一个yum仓库可以使用对应的一个这样后缀的文件

 

     [heartbeat]         对应yum仓库的识别符号,[]一定不能省,不能使用main,其他的任意,多个名字的话不能重复

     name=heartbeat      只是说明这个yum容器的意义,不大重要

     baseurl=file:///var/yum   指定yum源的位置,这是一个固定的。(如果是本地的yum仓库,写为:baseurl=ftp://172.16.0.1/pub/Server)

     gpgcheck=0      是否要验证数字证书

     enabled=1       yum仓库是否启用,0表示禁用,1表示启用

     

     配置之后,yum客户端就完成了!现在,我们的yum仓库和yum客户端都已经ok,现在就可以使用yum命令了。

 

 

    yum命令:

    yum list all 显示系统上所有的软件包

    yum list installed 显示系统上已经安装的软件包

    yum list available 显示yum仓库中尚未使用的软件包

    yum list updates 显示系统上能升级的软件包

    

    yum install package_name... 安装RPM包 指定软件包的名字就可以了,下面相同

    yum remove package_name... 卸载RPM包

    yum update package_name... 更新RPM包

    yum info package_name... 显示软件包的摘要信息

    yum provides filename    显示这个文件由哪个RPM包安装

    yum downgrade package_name... 降级软件包

    yum reinstall package_name... 重装RPM包

    yum whatprovides libmysqlclient.so.16 查询哪个包提供libmysqlclient.so.16文件

    

    yum repolist all 显示所有的yum仓库

    yum repolist enabled 显示启用的yum仓库

    yum repolist disabled 显示未启用的yum仓库

 

    yum clean all 清空本地yum缓存

    

    yum grouplist 显示已安装的软件包组的信息

    yum groupinstall "groupname" 安装RPM包组

    yum groupremove "groupname" 卸载RPM包组

    yum groupinfo "groupname" 查看包组的相关信息

    yum localinstall localfile... 安装本地的一个软件包,如果这个包需要依赖其他RPM包的话,会从yum源直接下载并安装(即自动解决依赖关系)

    

    yum localupdate localfile...用本地的软件包进行更新

    yum search keyword 查找yum仓库符合关键字的RPM包的相关属性信息










本文转自 leejia1989 51CTO博客,原文链接:http://blog.51cto.com/leejia/788137,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
缓存 应用服务中间件 Linux
yum 命令下载软件包到本地
在 Linux 系统中,使用 `yum` 命令可以下载软件包但不安装。通过 `yum` 的下载缓存功能,可以快速获取所需软件包。常用命令包括:`yum list available` 列出可安装的软件包,`yum download nginx` 下载特定软件包,`yum download nginx-1.18.0` 下载特定版本,`yum download -resolve nginx` 下载软件包及其依赖,`yum download nginx -d /path/to/download/directory` 指定下载目录
187 11
|
1月前
|
缓存 应用服务中间件 Linux
yum 命令下载软件包到本地
在 Linux 系统中,使用 yum 命令可以下载软件包但不安装。通过 yum 的下载缓存功能,可以快速获取软件包。常用命令包括:`yum list available` 列出可安装的软件包,`yum download nginx` 下载特定软件包,`yum download nginx-1.18.0` 下载特定版本,`yum download -resolve nginx` 下载软件包及其依赖,`yum download nginx -d /path/to/download/directory` 指定下载目录
115 1
|
2月前
OpenEuler配置本地yum源
本文档介绍了如何在服务器和虚拟机上挂载光盘镜像并配置本地Yum仓库,包括创建挂载点、编辑repo文件、实现挂载持久化以及通过FTP共享本地仓库的方法。适用于需要频繁安装软件包或管理多台机器的场景。
402 0
OpenEuler配置本地yum源
|
2月前
|
缓存 前端开发 Linux
Linux yum 命令
10月更文挑战第1天
50 2
|
2月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境
|
4月前
|
Web App开发 缓存 Ubuntu
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
223 11
|
4月前
|
缓存 Linux 网络安全
解决 CentOS 7 官方 yum 仓库无法使用的最佳实践
【8月更文挑战第18天】若 CentOS 7 的官方 YUM 仓库无法使用,可按以下步骤解决: 1. **检查网络连接**: - 确认服务器能正常上网,可通过访问外部网站或网络诊断测试。 - 检查防火墙设置,避免其阻挡 YUM 的网络访问。 2. **检查 YUM 配置**: - 核实 `/etc/yum.repos.d/` 下的 `CentOS-Base.repo` 文件中仓库地址正确无误。 - 确认配置文件内的 `enabled` 选项设为 `1` 以启用仓库。
1878 0
|
4月前
|
Linux Android开发 开发者
【Linux】yum的认识与简单配置
【Linux】yum的认识与简单配置
|
5月前
|
应用服务中间件 nginx
Ngnix07---通过yum安装Ngnix下 whereis ngnix可以查看Ngnix相关的一些目录,使用./nginx -y可以查看Ngnix版本及相关配置信息,使用 more CHANGES
Ngnix07---通过yum安装Ngnix下 whereis ngnix可以查看Ngnix相关的一些目录,使用./nginx -y可以查看Ngnix版本及相关配置信息,使用 more CHANGES
|
5月前
|
Ubuntu Linux
Linux软件安装-Linux系统靠yum命令安装软件,yum命令是一个RPM包软件管理器,用于自动化安装配置Linux软件,.rpm是Linux包下的软件,yum install下载 wget re
Linux软件安装-Linux系统靠yum命令安装软件,yum命令是一个RPM包软件管理器,用于自动化安装配置Linux软件,.rpm是Linux包下的软件,yum install下载 wget re