RPM与YUM命令异同详解

RPM和YUM都是用来安装程序的工具,但是它们有太多相似的用法以至于有事很难分清应该哪个
那就来一起详细的了解一下他们的功能及用法,以及他们的相同以及不同之处。

RPM

软件包管理器
功能:安装,卸载,升级,查询,校验,打包,数据库管理
RPM在安装时不能处理程序之间复杂的依赖关系
RPM可以验证软件包来源的合法性、完整性。
常用选项:

-i:表示安装。(常用:-ivh)
-v, -vv, -vvv:表示详细信息。(v越多越详细)
-h:以"#"号显示安装进度。(配合 -i 使用)
-q:查询指定包名。
-e:卸载指定包名。 -U:升级软件,若未软件尚未安装,则安装软件。
-F:升级软件。
-V:对RPM包进行验证。
-R:查看包的依赖关系
--nodeps:忽略依赖关系。
--force:忽略软件包及文件的冲突。
--test:仅作测试,不真正执行,可用于测试安装,测试卸载。
--replacepkgs:重新安装。替换原有的安装。
--initdb:新建RPM的数据库。
--rebuilddb:重建RPM的数据库。

RPM查询包相关信息

结合-q选项,可以查询rpm包相关信息。它提供了许多查询信息的方式。

  • rpm -qa 包名 : 查询所有已安装包
    RPM与YUM命令异同详解
  • 可以配合 grep 使用 :rpm -qa | grep “vsftp”
    RPM与YUM命令异同详解
  • rpm -qi 包名 : 查询包的摘要信息
    RPM与YUM命令异同详解
  • rpm -ql 包名 : 查询包安装生成的文件
    RPM与YUM命令异同详解
  • rpm -qs 包名 : 查询已安装包文件生成的状态信息
    RPM与YUM命令异同详解
  • rpm -qf 文件完整路径 : 查询文件由哪个包安装生成
    RPM与YUM命令异同详解
  • rpm -qc 包名 : 查询包安装生成的配置文件
    RPM与YUM命令异同详解
  • rpm -qd 包名 : 查看安装包生成的帮助文档
  • rpm -q –scripts 包名 : 查看包相关脚本

    • rpm包的脚本有4种:
      preinstall:安装前脚本
      postinstall:安装后脚本
      preuninstall:卸载前脚本
      postuninstall:卸载后脚本

    RPM与YUM命令异同详解

  • rpm -qp 包完整路径 : 查询未安装包相关信息(多用 -qpi -qpc -qpl搭配)
    RPM与YUM命令异同详解

  • RPM与YUM命令异同详解

RPM数据库
数据库文件位置 : /var/lib/rpm/
RPM与YUM命令异同详解
这里存放了rpm查询所需的信息,若库损坏,很多rpm查询功能将失效。
如果数据库循坏,可以使用两个命令重建

rpm --initdb    新建数据库
rpm --rebuilddb 重建数据库(时间比较长)

YUM

        软件包管理器前端工具
        功能:安装,卸载,升级,查询,校验
        yum安装程序最大的优点是解决了rpm包安装时经常遇到的繁杂的包依赖问题
        使用yum安装程序时必须先搭建好yum源,配置好yum配置文件(/etc/yum.repos.d/*.repo)

        yum常用命令:

yum install :安装
yum reinstall : 重装
yum remove : 卸载 (被依赖的包也会被卸载)
yum check-update :检查可升级的包
yum list : 查看仓库中包信息
yum search : 根据包名在仓库中查询包
yum repolist : 查看当前的yum仓库
yum info : 查看包的信息
yum provides : 查询某文件属于哪个包
yum clean : 清除本地yum缓存
yum makecache : 手动生成缓存
yum history : 查看历史
yum grouplist : 查看yum仓库包组
yum groupinfo : 查看指定包组信息
yum groupinstall : 安装包组("yum install @包组名" 也可以安装包组)
yum groupremove : 卸载包组

YUM LIST的相关命令(可用来查询包)

yum list相关命令,查询yum仓库中包的信息。包括所有已安装和未安装的。
yum list all (vsftp*) : 获取yum仓库中所有的包信息(可以配合通配符)
RPM与YUM命令异同详解
图中第一列:包名,第二列:版本号-release号
第三列表示安装情况:” @ “表示是已安装,后面的” base “” updates “等表示来源于哪个仓库的yum源

yum list installed : 只显示已安装的包
yum list available : 只显示未安装的包
yum list updatees : 查看可更新的包
yum list extras : 显示不属于任何仓库的,额外的包
yum list obsoletes : 显示被废弃的包
yum list recent : 新添加进yum仓库的包
: yum list相关的命令全都可以配合 “grep” 使用,用来查询符合条件的包。

yum模糊匹配搜索
yum search (all) 字符串 : 根据字符串查询带有相关字符的包(不带all只检索包名和摘要)
: yum search命令没有包是否已安装的信息,用yum list all查看可以看到查询的包是否已安装

  • YUM REPOLIST
    yum repolist : 查看当前能够使用的yum仓库
    yum repolist all : 查看所有仓库
    yum repolist enabled : 查看当前启用的仓库
    yum repolist disabled : 查看当前禁用的仓库

rpm与yum比较

  • 安装
    rpm -ivh /misc/cd/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm与yum install vsftpd.x86_64
    rpm安装时需要指定路径,且受限于软件的依赖问题。yum安装时不需要路径,且安装时会自动安装依赖的软件包。但是yum安装需要提前配置好yum源。
    RPM与YUM命令异同详解
    RPM与YUM命令异同详解
  • 卸载
    rpm -e vsftpd与yum remove vsftpd.x86:rpm -e在卸载时不会提醒,但是在且在被依赖的软件包是会报错。需要配合选项–nodeps来强制卸载,卸载后被依赖的软件包依然存在。yum remove在卸载时会提示确认,且在卸载被依赖的软件包时会将依赖此包的软件包一并卸载。
    卸载时都不需要路径,只需要包名。
    RPM与YUM命令异同详解 RPM与YUM命令异同详解

    RPM与YUM命令异同详解

  • 查询
    yum search vsftp与yum list all vsftp*与rpm -qa vsftp*:查询软件包。yum search能显示出包的摘要,但是不显示包是否已安装。yum list all能显示出是否已安装,但是没有软件包包内容的相关信息。rpm -qa只能显示已安装的软件包,没有其他信息。
    RPM与YUM命令异同详解
    RPM与YUM命令异同详解
    RPM与YUM命令异同详解
    yum info与rpm -qi:查看包说明。yum info的内容相对精简,rpm -qi显示内容更详细,但是不显示包是否安装。
    RPM与YUM命令异同详解RPM与YUM命令异同详解
    yum provides与rpm -qf: 查询文件由哪个包生成。两者都需要写出路径,yum provides甚至可以查询出未来将会存在的文件所属于的软件包
    RPM与YUM命令异同详解RPM与YUM命令异同详解

总结

   yum是在rpm的基础上建立的一个工具,在配置好yum源之后很多功能比rpm命令更强大,更方便。rpm可以查询包安装后生成的配置文件等,查询未安装软件包中的内容,查询软件包相关的脚本。一般情况下软件包的查询,安装,卸载,和软件属于的软件包等命令用yum的相关命令来完成更好。

原创文章,作者:kstg5663294,如若转载,请注明出处:http://www.178linux.com/78179

(6)
kstg5663294kstg5663294
上一篇 2017-06-18 17:02
下一篇 2017-06-18 19:59

相关推荐

  • 【N25第六周作业】VIM、crontab、简单脚本

    请详细总结vim编辑器的使用并完成以下练习题 第二周有写过vim的用法,请查看连接: 周期性任务计划:cron 服务程序: cronie:主程序包,提供了crond守护进程及相关辅助工具; 确保crond守护进程(daemon)处于运行状态: CentOS 7: systemctl  status  cron…

    Linux干货 2016-12-27
  • PXE自动化安装Centos7

    一、PXE介绍     PXE: Preboot Excution Environment,由Intel公司研发,可以使没有任何操作系统的主机能够基于网络完成系统的安装工作,实现服务器的自动化安装系统 二、PXE工作原理 Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合…

    2017-07-24
  • 基于LNMP架构添加Memcached支持,并验证其缓存结果

    一 Memcached简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。它是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。 Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流…

    Linux干货 2016-12-12
  • 8-1作业

    1、创建testuser uid 1234,主组:bin,辅助组:root,ftp,shell:/bin/csh home:/testdir/testuser [root@localhost ~]# useradd -u 1234 -g bin -G root,ftp …

    Linux干货 2016-08-03
  • AIDE入侵检测

    AIDE

    当一个入侵者进入了你的系统并且种植了木马,通常会想 办法来隐蔽这个木马(除了木马自身的一些隐蔽特性外, 他会尽量给你检查系统的过程设置障碍),通常入侵者会 修改一些文件,比如管理员通常用ps -aux来查看系统进 程,那么入侵者很可能用自己经过修改的ps程序来替换掉 你系统上的ps程序,以使用ps命令查不到正在运行的木马 程序。如果入侵者发现管理员正在运行crontab作业,也 有可能替换掉crontab程序等等。所以由此可以看出对于 系统文件或是关键文件的检查是很必要的。目前就系统完 整性检查的工具用的比较多的有两款:Tripwire和AIDE ,前者是一款商业软件,后者是一款免费的但功能也很强 大的工具

    2018-01-08
  • Linux基础知识之软件包管理(二)

    (1)CentOS7 yum dnf  yum repository: yum repo 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下,repodata) 文件服务器: ftp:// http:// nfs:// file:/// (2)yum客户端: 配置文件: /etc/yum…

    Linux干货 2016-08-24