N12-软件包管理-yum_第1页
N12-软件包管理-yum_第2页
N12-软件包管理-yum_第3页
N12-软件包管理-yum_第4页
N12-软件包管理-yum_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、解决软件依赖性解决软件依赖性nYellow Dog的YUM(yellow dog updater ,modified)nDebian的APT(advanced Packaging Tool)yum 原理n是使用一个中心仓库(repository)管理一部分甚至一个distribution的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了 Linux 用户一直头痛的 dependencies 的问题。nCentOS 先将释出的软件放置到 YUM 朋务器内,然后分析这些软件的相依属性问题,将软件内的记录信息写下来 (header)。 然后再n将这些信息分析后记

2、录成软件相关性的列表列表。这些列表数据不软件所在的位置可以称呼为容器 (repository)。 当客户端有软件安n装的需求时,客户端主机会主劢的向网络上面的 yum 朋务器的容器网址下载清单列表, 然后透过列表列表的数据不本机 RPM 数据n库已存在的软件数据相比较,就能够一口气安装所有需要的具有相依属性的软件了。n服务器端: n首先,在 APT/YUM 服务器上面放置了所有的 RPM 套件(这包括来自原版光盘与供货商发行的升级套件);n然后以相关的功能去分析各个 RPM 档案的相依性,这些纪录可以解决所谓的属性相依问题,然后将这些数据记录成档案存放在服务器的某特定目录内;n客户端: nCl

3、ient 端如果需要安装/升级/删除某个程序时,会先下载服务器上面记载的属性相依档案(利用的协议则是 WWW 或者是 FTP);n经由比对服务器端传来的纪录数据进行分析,然后取得所有相关的套件,一次全部下载下来进行升级安装。n当客户端有升级、安装的需求时, yum 会向容器要求清单的更新,等到清单更新到本机的 /var/cache/yum 里面后, 等一下更新时就会用这个本机清单不本机的 RPM 数据库迚行比较,这样就知道该下载什举软件。接下来 yum 会跑到容器朋务器 (yum server) 下载所需要的软件,然后再透过 RPM 的机制开始安装软件啦!yum客户端相关文件n客户端主配置文件

4、/etc/yum.conf n/usr/bin/yum可执行程序n缓存目录缓存目录/var/cache/yum 。软件清单,保存下载下来的RPM查看可以使用的reponyum repolistyum客户端使用n当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长. YUM安装软件nyum install xxx(在软件仓库中的名称)nyum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己

5、作出判断。 nyum localinstall 安装本地的 RPM包nyumreinstall RPM包 重新安装包yum删除软件nyum remove xxx,nyum erase xxx用YUM查询软件信息n想要安装一个软件,只知道它和某方面有关,但又不能确切知道它的名字。用 yum search keyword会搜索所有可用rpm的描述,列出所有描述中和messeger有关的rpm包。 n有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用yum info packagename这个指令来获取信息。查找软件包1.使用YUM查找软件包nyum search 2.列出所有可安装的软件包

6、nyum list3.列出所有可更新的软件包nyum list updates4.列出所有已安装的软件包nyum list installedn列出所有已安装但不在 Yum Repository 內的软件包nyum list extrasn列出所指定的软件包nyum list n显示软件包依赖关系:nyum deplist foon查看哪个软件包提供了指定的功能nyum provides *bin/ifconfignyum whatprovides ifconfig查找软件包中的文件n yum provides n列出提供这个档案的软件有哪些包 依赖关系nyum deplist 列出包的依赖查

7、看软件包信息(information)n使用YUM获取软件包信息yum info n列出所有软件包的信息yum infon列出所有可更新的软件包信息nyum info updatesn列出所有已安裝的软件包信息nyum info installedn列出所有已安裝但不在 Yum Repository 內的软件包信息nyum info extras清除YUM缓存nyum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用nyum cleannyum clean headers清除header,nyum clean packages清除下载的

8、rpm包nyum clean all一 股脑儿端 n清除缓存目录(/var/cache/yum)下的软件包nyum clean packagesn清除缓存目录(/var/cache/yum)下的 headersnyum clean headersn清除缓存目录(/var/cache/yum)下旧的 headersnyum clean oldheadersn清除缓存目录(/var/cache/yum)下的软件包及旧的headersnyum clean, yum clean all (= yum clean packages; yum clean oldheaders)yum更新软件包n检查可更新

9、的rpm包n#yum check-updaten更新所有的rpm包n#yum updaten更新指定的rpm包,如更新kernel和kernel sourcenyum update kernel kernel-sourcen大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级n#yum upgrade n系统更新(更新所有可以升级的rpm包,包括kernel)n#yum -y updaten每天定期执行系统更新n#chkconfig yum on#service yum startyum暂存(/var/cache/yum/)的相关参数 n清除暂存中rpm包文件#yum cle

10、an packages清除暂存中rpm头文件#yum clean headers清除暂存中旧的rpm头文件#yum clean oldheaders清除暂存中旧的rpm头文件和包文件#yum clean 或#yum clean all注:相当于yum clean packages + yum clean oldheaders 安全更新的rpm包 n安装安装的的GPG key(检验下载的(检验下载的RPM的有效性和完整性)的有效性和完整性)#rpm -import http:/ 编辑/etc/yum.conf,增加以下信息到尾部freshrpmsname=Fedora Linux $releas

11、ever - $basearch - freshrpmsbaseurl=http:/ Key# rpm -qa gpg-pubkey*显示显示Key信息信息#rpm -qi gpg-pubkey-e42d547b-3960bdf1删除删除Key#rpm -e gpg-pubkey-e42d547b-3960bdf1 Extra Packages for Enterprise LinuxnEPEL(/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项

12、目。nRHEL 的高质量、高性能、高可靠性,又需要方便易用(关键是免费)的软件包更新功能。/etc/yum.conf配置文件 maincachedir=/var/cache/yum #RPM包的缓存目录keepcache=0 #缓存是否保存,1保存,0不保存。debuglevel=2 #调试级别(0-10),默认为2logfile=/var/log/yum.log #yum的日志文件exactarch=1 #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。nobsoletes=1 #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于

13、upgrade,允许更新陈旧的RPM包。ngpgcheck=1 #是否检查GPG(GNU Private Guard),一种密钥方式签名。nplugins=1 #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。ninstallonly_limit=3 #允许保留多少个内核包。nexclude=selinux* #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。pkgpolicy配置项n包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存在,

14、yum应该安装哪一个。n如果是newest,则yum会安装最新的那个版本。n如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。yum仓库的配置方式方法1:直接配置/etc目录下的yum.conf文件方法2:/etc/yum.repos.d目录下增加.repo文件。repo配置文件是yum源(软件仓库)的配置文件。通常一个repo文件定义了一个或者多个软件仓库的细节内容。例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!仓库(repository)格式 repo-name name=A nice descriptio

15、n baseurl=http:/ enabled=1 gpgcheck=1 gpgkey=file:/gpgkey baseurl配置项n支持http:/ ftp:/ file:/ 三种协议nbaseurl只能有一个,但其值可以是多个URL。nURL指向的是这个仓库的header目录的上一级enabledn当某个软件仓库被配置成 enabled=0 时,yum 在安装或升级软件包时不会将该仓库做为软件包提供源。使用这个选项,可以启用或禁用软件仓库。#通过 yum 的 -enablerepo =repo_name 和 -disablerepo=repo_name 选项,或者通过 PackageK

16、it 的添加/删除软件工具,也能够方便地启用和禁用指定的软件仓库mirrorlistnmirrorlist=:列出这个容器可以使用的映射站台,如果不想使用,可以批注到这行; gpgcheckngpgcheck=1:还记得 RPM 的数字签名吗?这就是挃定是否需要查阅 RPM 档案内的数字签名! gpgkeyn gpgkey=:就是数字签名的公钥文件所在位置!使用默讣值即可 创建YUM仓库n通过createrepo重建软件包的YUM仓库meta文件createrepo -vg /media/Server/repodata/comps-rhel5.xml /var/ftp/pub/Server n

17、-g: 指定软件包依赖关系的xml文件nComps-rhel5-*.xml 定义每一个软件包组(package group)的定义信息 nFilelist.xml.gz 存储每个软件包组包含的文件清单 nOther.xml.gz 定义每一个软件包的额外信息 nPrimary.xml.gz 存储每个软件包的主要信息 nRepomd.xml 存储repodata中的每个文件的校验码 yum 服务器设定 1. 先建立所需要的目录:roottest root# mkdir /var/www/html/yum/fedora/core1/base roottest root# mkdir /var/www

18、/html/yum/fedora/core1/update 2. 复制原版光盘的内容: # 利用 mount 与 cp umount 等功能,将原本光盘的内容整个复制到 # /var/www/html/yum/fedora/core1/base 当中。 3. 利用 mirrordir 下载升级套件。 roottest root# mirrordir -v .tw/Linux/Fedora/linux/core/updates/1/i386/ /var/www/html/yum/fedora/core1/update 4. 进行 RPM 套件分析: roottest root# yum-arch /var/www/html/yum/fedora/core1/base roottest root# yum-arch /var/www/html/yum/fedora/core1/update n范例一:列出目前 yum server 所使用的容器有哪些? nrootwww # yum repolist all 其他工具nyum-utils 里面还有一些有用的工具,如 package-cleanup 用于清除本地安装的 rpm,还有维护 repository 的一些工具。n如 repo-gra

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论