RPM和YUM

一、RPM

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

语法 

rpm(选项)(参数)选项

-a:查询所有套件;

-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;

-c:只列出组态配置文件,本参数需配合"-l"参数使用;

-d:只列出文本文件,本参数需配合"-l"参数使用;

-e<套件档>或--erase<套件档>:删除指定的套件;

-f<文件>+:查询拥有指定文件的套件;

-h或--hash:套件安装时列出标记;

-i:显示套件的相关信息;

-i<套件档>或--install<套件档>:安装指定的套件档;

-l:显示套件的文件列表;

-p<套件档>+:查询指定的RPM套件档;

-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;

-R:显示套件的关联性信息;

-s:显示文件状态,本参数需配合"-l"参数使用;

-U<套件档>或--upgrade<套件档>:升级指定的套件档;

-v:显示指令执行过程;

-vv:详细显示指令执行过程,便于排错。

 参数

软件包:指定要操纵的rpm软件包。

实例

如何安装rpm软件包

rpm软件包的安装可以使用程序rpm来完成。

执行下面的命令:

rpm -ivh your-package.rpm

其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。

二、YUM

1.全称:Yellow dog Updater, Modified,是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

2. 基本命令

yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1

yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包

yum remove &#124; erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况

yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers

 3.基本原理

yum在得到正确的参数后,会首先从“/etc/yum.repo”路径下的众repo文件中取得软件仓库的地址并下载“元数据”,“元数据”含注册于该软件仓库内所有软件包的包名及其所需的依赖环境等信息,yum得到这些信息后会和本地以后环境做对比,进而列出确认需要安装哪些包,并在用户确认后开始安装。“元数据”由位于yum源服务器相关路径的repodata目录下的repomd.xml做索引。

--repo文件:

repo文件是yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用。

[serverid]
#其中serverid是用于区别各个不同的repository,必须有一个独一无二的名称。
name=Some name for this server
#name,是对repository的描述,支持像$releasever $basearch这样的变量;

mirrorlist=url://
#mirrorlist指定了一个URL地址,该地址是一个包含有众多源镜像地址的列表,当用户通过yum安装或升级软件时,yum会试图依次从列表中所示的镜像源中进行下载,如果从一个镜像源下载失败,
#则会自动尝试列表中的下一个。若列表遍历完成依然没有成功下载到目标软件包,则向用户抛错。 baseurl
=url:// #baseurl是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。 #其中url支持的协议有 http:// ftp:// file://三种。 #其中url指向的目录必须是这个repository header目录的上一级,它也支持$releasever $basearch这样的变量。 gpgcheck=[1 or 0] gpgkey=url:// #gpgchkeck= 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的。gpgkey则用来指明KEY文件的地址,同样支持“http、ftp和file”三种协议。 exclude= #exclude指明将哪些软件排除在升级名单之外,可以用通配符,列表中各个项目需用空格隔开。 failovermethod=priority priority= #failovermethode在yum有多个源可供选择时,决定其选择的顺序。该属性有两个选项:roundrobin和priority。roundrobin是随机选择,如果连接失败,则使用下一个,依次循环。
#priority则根据url的次序从第一个开始,如果不指明,默认是roundrobin。 enabled
=[1 or 0] #当某个软件仓库被配置成 enabled=0 时,yum 在安装或升级软件包时不会将该仓库做为软件包提供源。使用这个选项,可以启用或禁用软件仓库。

参考链接

http://www.cnblogs.com/liaocheng/p/4243589.html

http://blog.csdn.net/michaelwubo/article/details/47980649

原文地址:https://www.cnblogs.com/FrankZhou2017/p/7516003.html