使用RPM软件包管理命令详解

RPM软件包是各种Linux发行版本中应用较为广泛的软件包之一。RPM软件包以其强大的功能得到了多数Linux发行版本的支持和广大Linux使用者的爱护。

RPM软件包管理机制最早是由 Red Hat公司提出的,后来随着版本的升级逐渐融入更多的优秀特性,称为众多Linux发行版中公认的软件包管理标准,官方站点https://www.rpm.org

使用RPM软件包管理器通过建立统一的文件数据库,对在Linux操作系统中安装、卸载、升级的各种.rpm软件包进行详细的记录,并能够自动分析软件包之间的依懒关系,保持各应用程序在一个写提哦啊、有序的整体环境中运行。

使用RPM软件包管理命令——rpm

rpm命令的格式

[root@localhost ~]# man rpm
#查看rpm命令的使用详解
rpm(8)                                 Red Hat Linux                                 rpm(8)

NAME
       rpm - Red Hat 包管理器

总览
       rpm [选项]

描述
       rpm是一个很有用的包管理器,  可以用于生成,  安装, 查询, 核实, 更新以及卸载单个软件包.
       一个包通常包括一个文件档以及关于包 的信息, 比如名字, 版本, 描述等.

       必须选取下列基本模式中一个:  初始化数据库,   重新生成数据库,   生成包,   重新编译包,
       从Tar包生成RPM包,  查询,  显示查询标签,  安装,  更新,  卸载, 核实, 签名检查, 再签名,
       添加签名, 设置所有者和组 以及 显示配置.

       数据库维护:
           rpm -i [--initdb]
           rpm -i [--rebuilddb]

       生成:
           rpm [-b|t] [package_spec]+
           rpm [--rebuild] [sourcerpm]+
           rpm [--tarbuild] [tarredsource]+

       查询:
           rpm [--query] [queryoptions]
           rpm [--querytags]

       维护已安装的包:
           rpm [--install] [installoptions] [package_file]+
           rpm [--freshen|-F] [installoptions] [package_file]+
           rpm [--uninstall|-e] [uninstalloptions] [package]+
           rpm [--verify|-V] [verifyoptions] [package]+

从rpm命令手册中可以看出,rpm命令具有非常强大的功能,结合不同的命令选项可以实现以下三类功能:

  • 查询、验证RPM软件包的相关信息;
  • 安装、升级、卸载RPM软件包;
  • 维护RPM数据库信息等综合操作。

查询RPM软件包信息

1.查询已安装的RPM软件包信息,常用的参数有:
使用RPM软件包管理命令详解
(使用-qf选项时必须跟绝对路径)
不带子选项的“-q”选项用于查询已知名称的软件包是否安装,需要使用准确地软件包名称作为参数(可以多个)

[root@localhost ~]# rpm -q elinks lynx
未安装软件包 elinks 
未安装软件包 lynx 

当需要知道系统中的某个文件是由那个软件包生成的,使用“-qf”选项:

[root@localhost ~]# which vim                                  #查看vim程序的位置
/usr/bin/vim
[root@localhost ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-1.el7.x86_64

使用rpm命令只能查询RPM方式安装的软件包信息,对通过其他路径安装的软件包,rpm命令无法获取相应的信息。

2.查询RPM软件包文件中的相关信息,常用的参数有:
使用RPM软件包管理命令详解
使用“-qp”选项时,必须以RPM软件包的路径作为参数(可以有多个),而不是软件包名称。

[root@localhost ~]# rpm -qpi /mnt/Packages/ethtool-4.5-3.el7.x86_64.rpm 
警告:/mnt/Packages/ethtool-4.5-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
Name        : ethtool
Epoch       : 2
Version     : 4.5
Release     : 3.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/System
Size        : 344591
License     : GPLv2
Signature   : RSA/SHA256, 2016年11月21日 星期一 01时36分38秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : ethtool-4.5-3.el7.src.rpm
Build Date  : 2016年11月06日 星期日 10时05分23秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://ftp.kernel.org/pub/software/network/ethtool/
Summary     : Settings tool for Ethernet NICs
Description :
This utility allows querying and changing settings such as speed,
port, auto-negotiation, PCI locations and checksum offload on many
network devices, especially of Ethernet devices.

3.安装、升级、卸载RPM软件包,常用的参数有:
使用RPM软件包管理命令详解
安装软件包时,必须输入绝对路径和软件包的完成名称;
卸载软件包时,只需打上软件名称即可。

4.维护RPM数据库

重建数据库
当RPM数据库发生损坏,且Linux系统无法自动完成修复石,将导致无法使用rpm命令进行查询、安装等功能,就需要使用命令重建RPM数据库

[root@localhost ~]# rpm --rebuilddb

或者

[root@localhost ~]# rpm --initdb

导入验证公钥
在Linux/UNIX应用领域,相当一部分厂商会对发布的软件包进行数字签名,以确保软件的完整性、合法性。对于用户来说,可以使用官方提供的公钥文件,自动对下载的软件包进行验证,若在安装软件是出现验证失败的提示,则表示该软件可能已经被非法篡改。
向RPM数据库中到导入公钥文件时:

[root@localhost ~]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7
#将光盘中的公钥文件导入RPM数据库中

猜你喜欢

转载自blog.51cto.com/14157628/2417042