Loading... <p><strong style="font-size: 20px">一、前言</strong></p> <p> 之前我们介绍了RPM的应用(详细请查看http://www.178linux.com/archives/6383),发觉RPM安装软件有一个很繁琐的问题,那就是包与包之间的依赖关系,如果想正常安装和使用软件程序,就必须根据要求一步一步的解决软件之间的依赖关系。那么如果程序使用的包很多,将会很消耗使用人的时间和精力。那么有没有办法解决这一问题呢?</p> <p> 在RPM中我们介绍了RPM软件会记录软件之间的安装信息,其中也包括了软件之间的依赖属性。那么如果我们在安装前就分析这个列表,那么在安装时就能根据软件之间的关系将所需的软件一次性安装起来,这样就能解决这一问题,这就是 YUM 的机制。</p> <hr /> <p><strong style="font-size: 20px">二、yum的介绍</strong></p> <p> yum(Yellow dog Updater Modified)是CentOS中属于RPM前段软件包管理器,能从指定的服务器中下载RPM包,并自动分析和处理RPM包之间的依赖关系,最后将依次所依赖的软件包都安装了,而无需繁琐的一个一个安装。</p> <hr /> <p><span style="font-size: 20px"></span></p> <p><strong style="font-size: 20px">三、yum repository:yum仓库</strong></p> <p> yum仓库的组成部分</p> <p> 3.1、数据</p> <p> 包含所有的软件包文件</p> <p> 3.2、元数据</p> <p> 指的是数据文件:包括每个包的包名、版本信息、各包所包含的文件列表、包与包之间的依赖关系、包的分组信息</p> <pre class="brush:c#;toolbar:false">小扩展:元数据是怎么来的呢? 使用createrepo工具,能够简洁的快速的将我们所指定的存放大量RPM包的目录,里面所有的RPM包信息都读出来,分析他的依赖关系并生成元数据。所以createrepo可以理解为它是制作yum元数据的工具。 在光盘里其实也有这个元数据,路径在光盘中的 [root@www mnt]# cd repodata/ 里,然后是以 sqlite文件后缀 备注:centos5 是以 xml 后缀,centos6、7是以sqlite数据库的方式存储的</pre> <hr /> <p><strong style="font-size: 20px">四、yum的配置文件介绍</strong></p> <p> yum的配置文件有2中 : 主配置文件 + 仓库配置文件</p> <p> 4.1、主配置文件路径 /etc/yum.conf</p> <pre class="brush:bash;toolbar:false"> [main] cachedir=/var/cache/yum/$basearch/$releasever #下载RPM包的缓存目录 keepcache=0 #RPM缓存的程序包安装完成后是否保存,0表示不保存,1表示保存 buglevel=2 #调试级别 取值范围 0 - 10,默认值为2 logfile=/var/log/yum.log #yum相关日志存放路径 exactarch=1 #是否要平台完全匹配才能安装 obsoletes=1 #需不需要检查已过期的仓库 gpgcheck=1 #是否检查包的完整性和合法性 plugins=1 #是否允许支持yum的插件功能,0 表示不允许 ,1表示允许,建议允许,一般会用yum-fastestmirror这个插件 installonly_limit=5 #允许保留多少个内核包 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release #指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm 包</pre> <p> 4.2、仓库配置文件路径 <span style="font-size: 10.5pt;line-height: 1.5;font-family: 微软雅黑">/etc/yum.repos.d/*.repo</span><span style="font-family:微软雅黑;font-size: 10.5pt;line-height: 1.5"> </span><span style="font-size: 10.5pt;line-height: 1.5;font-family: 微软雅黑"> </span></p> <p> 仓库文件可以有多个,而且一个或几个相关的仓库的配置信息也可保存为一个文件,并且所以的仓库文件名都以 .repo结尾</p> <pre class="brush:bash;toolbar:false">[REPOID] #容器名字,必须是唯一的 name= #some name for this repository仓库的名字,仅作一个标识 baseurl= #指定真正仓库所在的路径,可以指多个仓库 #例如:baseurl=file:///media/cdrom # ftp://172.168.1.1/path #备注第二行不能顶格写,否则会出错 mirrorlist= #列出容器可以使用站点,如果不想使用,可以再前面加 # 注释 enabled= {0 | 1} #指是否启用这个仓库,0表示不启用,1表示启用 gpgcheck= {0 | 1} #是否要检测软件包的合法性,0表示不检测,1表示不检查 gpgkey= #软件包的公钥文件所在路径,例如:gpgkey=file:///media/cdrom/GPG-RPM-KEY-centos-6 cost= #仓库优先级,比如一个软件包在多个仓库都有,那应该选择哪个安装呢?就是根据这个优先级,默认是100,数字越小表示越优先使用</pre> <p> 备注:默认各仓库的用法:</p> <p> base库:通常为系统发行版所提供的程序包(就是光盘)</p> <p> updates库:存放更新包</p> <p> extra库:存放额外包</p> <p> epel库:epel库文件</p> <p> 库本身有优先级的,但是仅是在客户端有,服务器端是没有优先级的</p> <p> 小贴士:yum可支持多个协议,包括 ftp、http、nfs和本地文件共享服务</p> <p> 所以仓库配置文件中的 baseurl 一项可以有多个写法,下面是各写法的格式</p> <p> 1)ftp</p> <p> 格式:ftp://server/path/to/repository</p> <p> 2)http</p> <p> 格式:http://server/path/to/repository</p> <p> 3)nfs</p> <p> 格式:nft://server/nfs_path</p> <p> 4)本地文件共享服务 </p> <p> 格式:file:///path/to/repository</p> <p><span style="font-size: 20px"></span></p> <hr /> <p><strong style="font-size: 20px">五、yum安装步骤</strong></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163723-16.png" title="1437466576108490.png" alt="yum 安装步骤.png" /></p> <p></p> <hr /> <p><span style="font-size: 20px"><strong><br /></strong></span></p> <p><span style="font-size: 20px"><strong>六、yum命令的使用</strong></span></p> <p> 6.1、yum查询功能</p> <p> yum [option] [需要查询的信息][参数]</p> <p> -y:默认yum需要是交互模式,-y表示自动提供yes响应</p> <p> search:搜索某个软件名或关键字</p> <p> list:列出所有yum所管理的软件包和名称</p> <p> info:同上,也类似rpm -qai</p> <p> provides:查找该命令是由软件安装生成的,类似rpm -df的功能</p> <p> repolist:列出所有可用的repo </p> <pre class="brush:bash;toolbar:false">例如: [root@localhost ~]# yum provides bash</pre> <p style="text-align: left"><img src="//cto.wang/usr/uploads/2016/07/20160703163723-34.png" title="1437464021499132.png" alt="yum provides.png" /></p> <pre class="brush:bash;toolbar:false">[root@localhost ~]# yum repolist</pre> <p style="text-align: left"><img src="//cto.wang/usr/uploads/2016/07/20160703163723-61.png" title="1437464046594795.png" alt="yum repolist.png" width="734" height="272" style="width: 734px;height: 272px" /></p> <p> 6.2、安装、升级、降级、卸载功能</p> <p> yum [option] [需要查询的信息][参数]</p> <p> install:后面接需要安装的软件</p> <p> reinstall:后面接需要重新安装的软件</p> <p> update:后面接需要升级到的软件</p> <p> check-update:检查可用的升级包</p> <p> downgrade:后面接需要降级到的版本</p> <p> remove:卸载软件</p> <p> erase:功能同上,卸载</p> <pre class="brush:bash;toolbar:false">例如: [root@localhost yum.repos.d]# yum install zlib-static</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703163723-12.png" title="1437464708114937.png" alt="yum install.png" /></p> <p> 6.3、和软件组相关的功能</p> <p> yum [组功能] [软件组]</p> <p> grouplist:列出所有可使用的组列表</p> <p> groupinfo:后面接group name,可用了解该group内含所有组的名称</p> <p> groupinstall:安装整组的软件</p> <p> groupremove:删除某个组的软件 </p> <pre class="brush:bash;toolbar:false">例如: [root@localhost yum.repos.d]# yum grouplist #所有的包组未一一列举,若想安装某组可使用groupinstall直接安装 Installed Groups: #已经安装的软件组 Additional Development Base Console internet tools Development tools Installed Language Groups: #已经安装的语言组 Arabic Support [ar] Armenian Support [hy] Georgian Support [ka] Available Groups: #有效软件组包文件 Backup Client Backup Server Available Language Groups: #有效的语言组包文件 Afrikaans Support [af] Albanian Support [sq]</pre> <p> 6.4、清理缓存</p> <p> yum clean { all | package | headers }</p> <p> all:将所有的数据删除,包括元数据和软件文件</p> <p> package:将所有已下载的软件文件删除</p> <p> headers:删除所有下载的元数据文件</p> <pre class="brush:bash;toolbar:false">例如 [root@localhost yum.repos.d]# yum clean all #这样将会清除所有的已下载的元数据和软件文件 Loaded plugins: fastestmirror, security Cleaning repos: base extras updates Cleaning up Everything Cleaning up list of fastest mirrors</pre> <hr /> <p><strong style="font-size: 20px">七、知识小结</strong></p> <p> 7.1、yum是RPM包的前端工具,主要解决了程序包的依赖关系</p> <p> 7.2、需要了解yum的配置文件</p> <p> 主配置文件 /etc/yum.conf 和 仓库配置文件 <span style="font-size: 10.5pt;line-height: 1.5;font-family: 微软雅黑">/etc/yum.repos.d/*.repo</span><span style="font-family: 微软雅黑;font-size: 10.5pt;line-height: 1.5"> </span><span style="font-size: 10.5pt;line-height: 1.5;font-family: 微软雅黑"> </span></p> <p><span style="font-size: 10.5pt;line-height: 1.5;font-family: 微软雅黑"> 7.3、yum按住功能的流程<br /></span></p> <p><span style="font-size: 10.5pt;line-height: 1.5;font-family: 微软雅黑"> 7.4、yum的命令<br /></span></p> <p><span style="font-size: 10.5pt;line-height: 1.5;font-family: 微软雅黑"> 安装、卸载、更新、程序组、清理缓存、查询等功能</span></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信