Linux日记(2)——RPM和YUM

来源:互联网 发布:网络代理地址设置 编辑:程序博客网 时间:2024/05/22 07:58

1.RPM红帽软件包(为了降低安装步骤)

    在RPM红帽软件包管理器公布之前要想在Linux系统中安装软件只能采取源码包的方式安装,早期在Linux系统中安装程序是一件非常困难,耗费耐心的事情,而且大多数的服务程序仅仅提供编译源码,需要运维人员自行编译代码并解决许多的软件依赖关系,因此源码安装需要运维人员有很多的知识、高超的技能、甚至很好的耐心才能安装好一个程序。在安装、升级、卸载时还要考虑到其他程序、库的依赖关系,所以在校验、安装、卸载、查询、升级等管理软件操作时难度都非常大。    而RPM红帽软件包(Redhat Package Manager)机制则为解决这些问题而设计的,RPM会建立统一的数据库文件,详细的记录软件信息并能够自动分析依赖关系,颇有一些像Windows系统软件控制面板的感觉,目前RPM红帽软件包的优势已经被公众所认可,使用范围也已不局限在红帽系统中了。

PRM软件包文件采用软件包名称组合 name-version-release.architecture的方式命名。
(eg: httpd-tools-2.4.6-7.el7.x86_64.rpm)从存储库安装软件包时,仅需要软件包的name

  • name:软件包的名称(httpd-tools)
  • version:此软件包的版本号(2.4.6)
  • release:基于该版本的软件包的发行版号,由软件打包商设置,后者不一定是原始的软件开发商(7.el7)
  • arch:该软件包可以在哪种CPU架构上运行;noarch表示不限架构(x86_64)



每个RPM软件包是包含以下三个组成部分的特殊存档:

  • 软件包安装的文件
  • 与软件包(元数据有关的信息),如name/version/release/arch;软件包的摘要和描述信息;是否要求安装其他软件包;授权许可信息;软件包更新日志;以及其他详细信息
  • 在安装,更新或删除此软件包(或其他软件包)时可能运行的脚本。



大多数情况下,最多只能安装软件包的一个版本;
通常,RPM安装流程不允许覆盖文件。如果软件包构建的时候没有冲突的文件名,则可安装多个版本(如kernel软件包就是如此)


选项参数:

-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合”-l”参数使用;
-d:只列出文本文件,本参数需配合”-l”参数使用;
-e<套件档>或–erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或–hash:套件安装时列出标记;
-i<套件档>或–install<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合”-l”参数使用;
-U<套件档>或–upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。


常用命令:

rpm -qa : 列出所有已安装的软件包
rpm -q PACKAGENAME :当前已安装的软件包的名字全称(httpd-tools-2.4.6-7.el7.x86_64.rpm)
rpm -qf FILENAME : 哪个包提供了该文件
rpm -qi PACKAGENAME:列出已安装的PACKAGENAME的详细信息
rpm -ql PACKAGENAME:列出已安装的PACKAGENAME的所有文件
rpm -qc PACEKAGENAME:仅列出该PACKAGE的配置文件
rpm -qd PACKAGENAME:列出该PACKAGE的文档文件
rpm -i PACKAGENAME:安装PACKAGENAME(一般会加上v和h参数)。

2.Yum软件仓库(为了解决软件依赖性)

而虽然RPM能够帮助用户查询软件相关的依赖关系,但问题还是要运维人员自己来解决,有些大型软件对数十个程序都有依赖关系,在这种情况下对软件安装会是非常痛苦的。Yum软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术,Yum软件仓库可以根据用户的要求分析出所需软件包及其相关依赖关系,然后自动从服务器下载软件包并安装到系统.


yum的主配置文件:/etc/yum.conf
yum源的配置文件:/etc/yum.repos.d目录下并且以.repo为后缀结尾。

yum源配置(.repo):

[local]         //存储库IDname = local        //名称baseurl = URL       //软件包存储库的URL地址,可以指向本地(file:),网络共享(http,ftp)enabled = 1/0       //是否启用该文件,1表示启用,0表示不启用gpgcheck = 1/0  //这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的#gpgkey = URL       //若校验启用,则定义用于校验的密钥




常用命令:

yum repolist all:列出所有可用的仓库
yum list all :列出仓库中所有可用的软件包
yum info 软件包 :查看该软件包的信息
yum install 软件包:安装软件包
yum reinstall 软件包:重新安装软件包
yum update 软件包:升级软件包
yum remove 软件包:卸载软件包
yum clean all :清除所有仓库缓存
yum check-update:检查可更新的软件包
yum grouplist :查看系统中已经安装的软件包组
yum groupinstall 软件包组:安装制定的软件包组
yum groupremove 软件包组:卸载制定的软件包组
yum groupinfo 软件包组:查询指定的软件包组信息
yum provides PATHNAME:显示与制定的路径名匹配的软件包

原创粉丝点击