上一篇我们介绍了软件包管理器后端工具rpm,现在我们来看一下软件包管理器前端工具yum。先来介绍下yum吧。

yum:Yellowdog Update Modifier。yum是一种C/S的架构。是一种依赖于rpm的前端软件包管理工具。工作模式为C/S模式。其服务器工作过程完全依赖于yum仓库。

yum repository:yum仓库,是一种用来存放所有我们需要用到的rpm包的场所,或者说是文件服务。该文件服务可以是ftp,web,或本地某个file。不管哪种配置机制,其工作机制都是相同的。

yum有自己的客户端,其工作机制依赖于其配置文件。在配置文件中可以为yum指定服务器在什么地方,该服务器可以是ftp,web,file任一个都可以,说白了就是yum仓库,在配置文件中还必须指明yum仓库名称,简要描述信息,访问位置及当前的yum仓库是否要使用等属性。当我们使用yum安装软件包时,yum客户端会试图通过网络去请求到对方主机上或到某个yum仓库中获得这个yum仓库中所有可以获得的文件列表。当我们使用yum去安装某个软件包的时候,这个软件包一定位于我们配置众多的可以使用的yum仓库中的某一个中。
上一篇已经提到过,rpm对处理具有依赖关系的软件包很不方便,但yum却可以很方便的处理这种关系。当我们安装的软件包需要另外一个或几个软件包提供的功能或库文件时,yum会去yum仓库自动为我们找到安装该软件包所需的所有的软件包,找到后下载到本地,然后跟该软件包一块安装。比方说:我们安装软件包X,但安装X需要先安装软件包L、M、N、Y、Z,使用yum安装时,yum检索发现我们系统上已经安装了Y和Z,其他三个还没有安装,yum就会自动去yum仓库查找这三个文件,找到后下载到本地,然后跟软件包X一块安装。
每当我们需要安装某个yum包时,如果yum都从新从yum仓库下载至本地,这样看起来回很浪费带宽,也会使yum的效率极低,所以,yum为我们提供了元数据文件,我们每次使用yum时所下载的文件都会缓存到该文件中,以后的每次操作都会先从这里查找。下面介绍yum仓库中的元数据文件。
yum仓库中的元数据文件包括如下几个:

primary.xml.gz:当前仓库所有RPM包的列表、包含有各包之间的依赖关系、每个RPM包安装生成的文件列表,是最关键的文件;

filelists.xml.gz:当前仓库中所有RPM包的所有文件列表;

other.xml.gz:额外信息,RPM包的修改日志;

repomd.xml:记录的是上面三个文件的时间戳和校验和;

comps-rhel5-server-core.xml:RPM包分组信息。

上面我们提到,yum可以为我们提供如此强大的功能,而yum所有的工作是机制依赖于yum仓库的,即repo文件,那我们如何为yum定义repo文件,怎样定义repo文件呢?其实,系统有个文件夹,里边存放有yum仓库文件,我们只需在/etc/yum.repos.d/目录下创建.repo的文件,编辑并输入如下内容就可以使用了。文件内容格式如下:

[Repo_ID]

name=Description

baseurl=

ftp://

http://

file:///

enabled=[1|0]

gpgcheck=[1|0]

gpgkey=

如:在该/etc/yum.repos.d/目录下,创建一个文件名为Server.repo结尾的文件,编辑输入如下内容:
  1. [Base]
  2. name=RHEL5 Server
  3. baseurl=ftp://172.16.0.1/pub/Server
  4. enabled=1
  5. gpgcheck=0

这样,我们的yum仓库Server就创建成功了。用ls查看下,可以看到该目录下多了一个文件,那就是Server.repo。当我们有多个yum仓库来源时,比方说我baseurl有好几个,ftp一个,http一个,还有本地某个文件file中,可以再同一个.repo文件中写入多个,但每个格式都必须相同。如:我想在上边一个基础上再添加一个,则可在该文件中输入如下内容,这两个是在同一个文件中哦!命令如下:

  1. [Base]
  2. name=RHEL5 CDROM Server
  3. baseurl=file:///media/yum/Server
  4. enable=1
  5. gpgcheck=0
  6. [Name]
  7. name=RHEL5 CDROM VT
  8. baseurl=file:///media/yum/VT
  9. enable=1
  10. gpgcheck=0
yum还为我们提供了yum命令,下面看一下yum的用法及各个选项吧。因为yum在安装软件包时会考虑所有依赖关系,因此,在执行yum命令时,会显示很多信息,所以我们只给出部分命令的截图。

yum [options] [command] [package ...]

    -y:自动回答为yes
    --nogpgcheck:忽略gpg检查
yum的各选项包括如下几个:
list: 列表
    all
    available: 可用的,仓库中有但尚未安装的

installed: 已经安装的

    updates:可用的升级
因rpm包太多,截图很不方便,这里只给出命令,不在给出截图。命令如下:
  1. # yum list all
假如我们想显示yum开头的rpm包,可使用如下命令:
  1. # yum list all yum*

clean:清理缓存

[ packages | headers | metadata | dbcache | all ]

如:我们清除下本机yum缓存,命令及代码如下所示:
  1. # yum clean all
repolist:显示repo列表及其简要信息
    all
       enabled:默认
       disabled
采用其默认选项,我们现在去显示下repo列表及简要信息,命令及执行结果如下所示:
  1. # yum repolist

install:安装
    使用格式为:# yum install PACKAGE_NAME
现在我们去安装mysql-server.i386.rpm包,我们知道当有依赖关系时,系统会自动为我们搜索所有这样的包,下载至本地,然后几个包一块安装。命令及执行结果如下,截图太大,只给出部分截图:
  1. # yum install mysql-server.i386

update:升级
update_to:升级为指定版本
remove|erase:卸载,会卸载所有依赖该包的软件包,要慎用,所以这里我们不在演示效果。只给出命令# yum remove php53-pdo
info:查询信息,当我们想查询某个rpm包时可以使用该命令。如:我们查询下有关zsh包的信息,命令及执行结果如下所示:
  1. # yum info zsh

provides|whatprovides:查看指定文件或特性是有哪个包生成的,如我们来查看下/etc/inittab是由哪个包生成的。命令及执行结果如下所示:
  1. # yum provides /etc/inittab

如何创建yum仓库:
createrepo,我们必须先安装该rpm包才能使用其提供的功能,这里不再演示。
练习:
写一个脚本,完成以下功能:
说明:此脚本能于同一个repo文件中创建多个Yum源的指向;
1、接受一个文件名做为参数,此文件存放至/etc/yum.repos.d目录中,且文件名以.repo为后缀;要求,此文件不能事先存在,否则,报错;
2、在脚本中,提醒用户输入repo id;如果为quit,则退出脚本;否则,继续完成下面的步骤;
3、repo name以及baseurl的路径,而后以repo文件的格式将其保存至指定的文件中;
4、enabled默认为1,而gpgcheck默认设定为0;
5、此脚本会循环执行多次,除非用户为repo id指定为quit;
参考答案:
  1. #!/bin/bash
  2. REPOFILE=/etc/yum.repos.d/$1
  3. if [ -e $REPOFILE ];then
  4. echo "$1 exists."
  5. exit3
  6. fi
  7. read -p "repo_id:" REPOID
  8. until [ $REPOID == 'quit' ];do
  9. echo "[$REPOID]" >> $REPOFILE
  10. read -p "repo_name:" REPONAME
  11. echo "name=$REPONAME" >> REPOFILE
  12. read -p "baseurl:" BASEURL
  13. echo "baseurl=$BASEURL" >> REPOFILE
  14. echo -e "enabled=1\ngpgcheck=0" >> $REPOFILE
  15. read -p "repo_id:" REPOID
  16. done

转载于:https://blog.51cto.com/lq2419/1157573

软件包管理器前端工具yum的使用相关推荐

  1. RPM(红帽软件包管理器)和Yum软件仓库

    1.红帽软件包管理器 RPM机制是为了解决在校效.安装.卸载.查询.升级等管理软件操作过难设计的. 常用RPM软件包命令: 1)安装软件命令格式:rpm -ivh filename.rpm 2)升级软 ...

  2. RPM(软件包管理器)和YUM 软件仓库

    一.RPM软件包的功能: 存储和数据压缩 文件安装 配置文件生成 系统服务注册 软件依赖检查和依赖输出 存储数据压缩 RPM具有软件包的基本功能--数据压缩存储,RPM 安装列表中的文件在按照某个指定 ...

  3. sed的高级命令和软件包管理器rpm

    一. sed的高级编辑命令  1.高级编辑命令   P:打印模式空间开端至\n内容,并追加到默认输出之前   h:把模式空间中的内容覆盖至保持空间中   H:把模式空间中的内容覆盖至保持空间中   g ...

  4. yum(Fedora和RedHat以及SUSE中的Shell前端软件包管理器)命令详解

    yum官方网站:http://yum.baseurl.org/ Fedora对于yum的介绍:http://fedoraproject.org/wiki/Yum yum(全称为 Yellow dog ...

  5. linux软件包管理工具,Linux 软件包管理器-----yum配置详解一

    一.yum简介 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定 ...

  6. 【Linux系统】开发工具(上) {软件包管理器yum,更新yum源,文本编辑器vim,vim的四种基本模式,vim指令集,代码编译器gcc/g++}

    一.软件包管理器:yum 1.1 yum是什么? Linux下软件的安装方法: 源码安装:下载源码,在本地自行编译,然后才能安装. rpm安装:红帽软件包管理工具,属于安装包安装. yum安装:本身会 ...

  7. Linux 命令之 yum -- 基于 RPM 的软件包管理器

    文章目录 一.命令介绍 二.选项参数 选项 参数 三.配置文件 四.参考示例 (一)安装.升级和删除包 安装指定的软件包 强制重新安装 本地安装指定软件包 本地更新指定软件包 安装 yum 服务器中的 ...

  8. Linux学习笔记重新梳理20180702 之 yum软件包管理器

    2019独角兽企业重金招聘Python工程师标准>>> Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中 ...

  9. 【Linux】软件包管理器yum和编辑器vim(部分动图演示)

    工具的本质也是指令 文章目录 一.Linux 软件包管理器 yum 1.什么是软件包 2.第一个软件rzsz 3.yum的扩展 二.Linux编辑器-vim使用 1.vim的基本概念 2.vim的基本 ...

  10. 【Linux入门】第三篇:软件包管理器yum和编辑器vim的使用

    目录 前言 Linux软件包管理yum 查看软件包 如何安装软件 如何卸载软件 lrzsz的使用 Linux编辑器-vim使用 01.vim的基本概念 02.vim的基本操作 03.vim命令模式命令 ...

最新文章

  1. python 核心编程 第十三章
  2. Shiro安全框架【快速入门】就这一篇!
  3. 聊一聊Kafka分区的隐藏属性——二次归类
  4. 使用HTML5 details,summary实现,展开,下拉,树的效果
  5. java实用教程——组件及事件处理——布局管理(五种)
  6. 【PAT - 甲级1012】The Best Rank (25分)
  7. linux有许多sed进程,Linux进程与性能监控
  8. EF Code First 学习笔记:约定配置
  9. ubuntu 设置定时任务
  10. 详细教程Desktop Goose又在整什么幺鹅子呢?
  11. 有效值(RMS) 平均值(DC) 的理解
  12. 寻宝游戏设定_第1集的答案(寻宝游戏)
  13. EOJ 1864 二分图匹配
  14. springcloud搭建实战<十一>【config配置中心】
  15. Java学习系列之抽象类和接口的区别和联系
  16. 人喜欢音乐的部分原因:形成期望,不确定性
  17. 导游APP开发模板现源码
  18. 于明:APU能否接力取代迟暮的X86?
  19. U盘在远程电脑安装软件
  20. python:打印三角形图案。

热门文章

  1. java一个和_你知道Java中和||放一个表达式中怎么执行吗-百度经验
  2. 前端宽度一至显示宽度不一致_便利店装修注意事项,你确定不看看?
  3. 制作单机俄罗斯方块游戏心得(二)
  4. 中国男性的私密数据大赏,女生勿入!
  5. 几个清华、北邮、同济学霸的公号,值得关注
  6. 性能测试--jmeter响应数据中文乱码【12】
  7. mysql server 6.0_MySQL Server 6.0完全卸载以及卸载中遇到的问题
  8. 单片机脉冲喷吹仪c语言,C51单片机脉冲累加器(C语言程序)
  9. mysql5和8怎么同时安装_WINDOWS服务器同时安装多个版本的MYSQL的方法,MQYSQL5和MQYSQL8的共存。...
  10. java案例代码3-机票打折的案例