自学Linux Shell9.3-基于Red Hat系统工具包存在两种方式之一:RPM属性依赖的解决方式-YUM在线升级

点击返回 自学Linux命令行与Shell脚本之路

9.3-基于Red Hat系统工具包:RPM属性依赖的解决方式-YUM在线升级

本节主要介绍基于Red Had的系统(测试系统centos)

yum特点

  • 自动解决包的倚赖性问题能更方便的添加/删除/更新RPM包
  • 便于管理大量系统的更新问题
  • 可以同时配置多个资源库(Repository)
  • 简洁的配置文件(/etc/yum.conf)
  • 保持与RPM数据库的一致性
  • 有一个比较详细的log,可以查看何时升级安装了什么软件包等
  • 使用方便

yum是CentOS/Fedora系统自带的,因此它能使用CentOS官方的软件源,完成各种官方发布的各种升级。对于第三方软件源的支持,yum也不差,大多数支持apt的repository,也能支持yum 。

1、yum的安装查看

yum主要功能是更方便的添加/删除/更新RPM包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。

yum可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm包时遇到的依赖性问题,保持与RPM数据库的一致性。

1.1 查看系统默认安装的yum

yum的基础安装包包括:

  • yum  //RPMinstaller/updater
  • yum-fastestmirror  //Yumplugin which chooses fastest repository from a mirrorlist
  • yum-metadata-parser  //Afast metadata parser for yum

1.2 yum仓库

yum 是linux环境安装软件包的一种方式。很多时候安装一个软件安装一个软件需要安装1个或者多个其他软件。

yum仓库用来存放所有的现有的.rpm包,当使用yum安装一个rpm包时,需要依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库 。

扫描二维码关注公众号,回复: 3673916 查看本文章

如果你的linux环境不能访问外网,那你装yum没有意义,因为他需要访问http的仓库里面的。当然如果你有本地仓库,就把/etc/yum.repos.d改一下地址就可以。

1.3 安装yum

可以通过wget从网上下载相关包安装,也可以挂载系统安装光盘进行安装。

2、yum配置

2.1 说明:yum的配置文件分为两部分:main和repository

  • main部分定义了全局配置选项,整个yum配置文件应该只有一个main。常位于/etc/yum.conf中。
  • repository部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repos.d目录下的各文件中。
    repos文件是Linux中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!

YUM的工作原理并不复杂,每一个RPM软件的头(header)里面都会纪录该软件的依赖关系,那么如果可以将该头的内容纪录下来并且进行分析,可以知道每个软件在安装之前需要额外安装哪些基础软件。也就是说,在服务器上面先以分析工具将所有的RPM档案进行分析,然后将该分析纪录下来,只要在进行安装或升级时先查询该纪录的文件,就可以知道所有相关联的软件。所以

YUM的基本工作流程如下:

  • 服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。
  • 客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

2.2 yum.conf文件详解

 

  • cachedir=/var/cache/yum/$basearch/$releasever
    #cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum/$basearch/$releasever。
  • keepcache=0
    #设置keepcache=1,yum在成功安装软件包之后保留缓存的头文件(headers)和软件包。默认值为keepcache=0不保存
  • debuglevel=2
    #debuglevel:除错级别,0──10,缺省为2
  • logfile=/var/log/yum.log
    #yum日志文件位置。用户可以到/var/log/yum.log文件去查询过去所做的更新。
  • exactarch=1
    #exactarch,有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设置为1,则yum只会安装和系统架构匹配的软件包,例如,yum不会将i686的软件包安装在适合i386的系统中。默认为1
  • obsoletes=1
    #相当于upgrade,允许更新陈旧的RPM包
  • gpgcheck=1
    #gpgchkeck=有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的
  • plugins=1
    #是否启用插件,默认1为允许,0表示不允许。我们一般会用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
  • pkgpolicy=newest
    #pkgpolicy:包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。
  • tolerant=1
    #tolerent,也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum不会出现错误信息。默认是0。
  • retries=20
    #retries,网络连接发生错误后的重试次数,如果设为0,则会无限重试
  • reposdir=/etc/yy.rm
    #默认是/etc/yum.repos.d/低下的xx.repo后缀文件     #reposdir=[包含.repo文件的目录的绝对路径]该选项用户指定.repo文件的绝对路径。
    .repo文件包含软件仓库的信息(作用与/etc/yum.conf文件中的[repository]片段相同)。|
    默认都会被include进来 也就是说/etc/yum.repos.d/xx.repo无论配置文件有多少个每个里面有多少个[name]最后其实都被整合到一个里面看就是了 重复的[name]后面的覆盖前面的
  • exclude=xxx
    #exclude排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁时特别有用。
  • distroverpkg=centos-release
    #指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。

2.3 yum.repos.d文件详解

 在.repo文件中,配置语法是分段的,每一段配置一个软件仓库,配置语法如下:

[repositoryid]
name=Some name for this repository
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
mirrorlist=url://path/to/mirrorlist/repository/
enabled=0/1
gpgcheck=0/1
gpgkey=A URL pointing to the ASCII-armoured GPG key file for the repository
  • repositoryid : 用于指定一个仓库
  • name: 用于指定易读的仓库名称,是对repository的描述,支持像$releasever$basearch这样的变量。

    #变量说明:$releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有则根据redhat-release包进行判断。
    $arch,cpu体系,如i686,athlon等
    $basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。

  • baseurl : 用于指定本仓库的URL, #从服务器获取软件的路径,只有设置正确,才能从上面获取软件。
    基本格式是:      
    baseurl=url://server1/path/to/repository/                                   
                  url://server2/path/to/repository/                                   
                  url://server3/path/to/repository/
    baseurl后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl只能有一个,其中url指向的目录必须是这个repositoryheader目录的上一级,它也支持$releasever$basearch这样的变量。其中url支持的协议有http://ftp://file://三种:

    • http — 用于指定远程 HTTP 协议的源
    • ftp — 用于指定远程 FTP 协议的源
    • file — 用于本地镜像或 NFS 挂装文件系统
  • mirrorlist : 用于指定仓库的镜像站点,通常是开启的,将$releasever和$basearch替换成自己对应的版本和架构,例如i386,在浏览器中打开,就能看到一长串镜可用的镜像服务器地址列表。
  • enabled : 用于指定是否使用本仓库,默认值为1,即可用
  • gpgcheck : 用于指定是否检查软件包的 GPG 签名
  • gpgkey : 用于指定GPG签名文件的URL
    #导入每个reposity的GPGkey,yum可以使用gpg对包进行校验,确保下载包的完整性,所以我们先要到各个repository站点找到gpgkey,一般都会放在首页的醒目位置,一些名字诸如RPM-GPG-KEY.txt之类的纯文本文件,把它们下载,然后用rpm--import xxx.txt命令将它们导入,最好把发行版自带GPG-KEY也导入,rpm--import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官方软件升级用的上。



.....

猜你喜欢

转载自www.cnblogs.com/yaoyaojcy/p/9829551.html