RPM包管理


RPM包管理

一、RPM包的安装

用法

[root@localhost ~]#rpm �Civh package_name


参数

       -i:安装

       -v:查看详细安装信息

       -h:显示安装进度

:安装bind

[root@localhost~]# rpm -ivh bind-9.8.2-0.10.rc1.el6.i686.rpm


如果一次安装多个文件,则:

[root@localhost~]# rpm -ivh filename-a.rpm  filename-b.rpm


直接安装网络上的RPM包:

[root@localhost~]# rpm -ivh 
http://website/path/pkgname.rpm


选项

       --nodeps:不考虑软件依赖性,强行安装

       --replacefiles:覆盖已存在文件

       --replacepkgs:重新安装

       --force:强制安装

       --test:找出依赖性

      --justdb:由于RPM数据库损坏时,可使用该参数更新软件在数据库内的信息

      --nosignature:略过数字证书的检查

      --prefix新路径:安装到指定路径

      --noscripts:软件安装过程中不自动执行某些命令

 

二、RPM升级和更新

用法

[root@localhost ~]# rpm �CUvh | Fvhpkgname.rpm


参数

       -Uvh:后跟的软件如果没有安装过,则直接安装;如果已安装,则更新至最新版本

       -Fvh:后跟的软件如果没有安装过,则不予安装;如果已安装,则更新至最新版本

 

三、RPM查询

用法:

[root@localhost ~]# rpm �Cq[licdR] [已安装软件|未安装软件]


参数:

       -q:仅查询,查询后接软件名是否已安装

       -qa:列出所有已安装在本机上的软件

      -qi:列出软件的详细信息

       -ql:列出该软件所有的文件与目录所在完整路径名

       -qc:列出该软件的所有配置文件(/etc下的文件)

       -qd:列出该软件的所有帮助文件(与man有关的文件)

       -qR:列出与该软件有关的依赖包所含的文件

       -qf:后接文件名找出该文件属于哪一个已安装的软件

       -qp[licdR]:找出某个RPM文件内的信息,而非已安装的软件信息

注意:所有参数前加上-q才是查询。查询分两部分:一是查询已安装软件的信息,该信息由/var/lib/rpm提供;二是查询未安装软件将要写入/var/lib/rpm的信息。

例:查询软件是否已安装

[root@localhost~]# rpm -q logrotate
logrotate-3.7.8-15.el6.i686


查询上面软件所提供的目录和文件

[root@localhost~]# rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf
/etc/logrotate.d
/usr/sbin/logrotate
/usr/share/doc/logrotate-3.7.8
/usr/share/doc/logrotate-3.7.8/CHANGES
/usr/share/doc/logrotate-3.7.8/COPYING
/usr/share/man/man5/logrotate.conf.5.gz
/usr/share/man/man8/logrotate.8.gz
/var/lib/logrotate.status


列出logrotate的说明信息

[root@localhost~]# rpm -qi logrotate


找出logrotate的配置文件

[root@localhost~]# rpm -qc logrotate
/etc/logrotate.conf
/var/lib/logrotate.status


找出logrotate的帮助文件

[root@localhost~]# rpm -qd logrotate
/usr/share/doc/logrotate-3.7.8/CHANGES
/usr/share/doc/logrotate-3.7.8/COPYING
/usr/share/man/man5/logrotate.conf.5.gz
/usr/share/man/man8/logrotate.8.gz


安装logrotate所需的依赖包

[root@localhost~]# rpm -qR logrotate


 

四、RPM验证与数字证书

验证

通过使用/var/lib/rpm下数据库的内容与当前linux系统下的软件对比,来验证是否有文件被修改

用法

[root@localhost ~]#rpm �CV[apf] 已安装软件|未安装软件


参数

       -V:后跟软件名,若该软件下文件被改动过,则显示出来

       -Va:列出目前系统上所有被改动过的文件

       -Vp:后跟软件名,列出该软件可能被改动过的文件

       -Vf:列出某个文件是否被改动过

:查询文件/etc/crontab是否被改动过

[root@localhost~]# rpm -Vf /etc/crontab


无显示则表明没被改动过

查询软件logrotate是否被改动过

[root@localhost~]# rpm -V logrotate


修改logrotate的配置文件/etc/logrotate中的rotate5

[root@localhost~]# rpm -V logrotate
..5....T.  c /etc/logrotate.conf


前面8个信息:

S:文件的容量大小是否被改变

M:文件的类型或属性(rwx)是否被改变

5MD5是否改变

D:设备的主次代码是否改变

LLink路径是否已改变

U:文件的所有者已改变

G:文件的属组已改变

T:文件的创建时间被改变

后面的c表示Configfile,即文件类型,文件类型有以下几类:

c:配置文件

d:文档

gghost文件,该文件不被某软件所包含

l:授权文件

r:自述文件

 

数字证书

作用:为防止用户安装的软件遭到篡改,软件厂家会有一个自己的证书体系,并针对软件产生一个专属与该软件的公钥,在安装原厂软件时,rpm命令会读取RPM文件的证书信息,与本机系统内的证书信息比较,若证书相同,则安装;若不同,则警告并停止安装

安装数字证书

1.先找到密钥文件

[root@localhost~]# find /etc -name '*GPG-KEY*'
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Testing-6
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Security-6
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-6


2.安装

[root@localhost~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


3.查看公钥信息

[root@localhost~]# rpm -qa | grep pubkey
gpg-pubkey-c105b9de-4e0fd3a3
[root@localhost~]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3
Name        : gpg-pubkey                   Relocations: (notrelocatable)
Version     : c105b9de                          Vendor: (none)
Release     : 4e0fd3a3                      Build Date: Fri 03 Oct2014 08:16:45 PM PDT
Install Date: Fri03 Oct 2014 08:16:45 PM PDT      Build Host: localhost
Group       : Public Keys                   Source RPM: (none)
Size        : 0                                License: pubkey
Signature   : (none)
Summary     : gpg(CentOS-6 Key (CentOS 6 OfficialSigning Key) <[email protected]>)
Description :
-----BEGIN PGPPUBLIC KEY BLOCK-----
Version: rpm-4.8.0(NSS-3)
 
mQINBE4P06MBEACqn48FZgYkG2QrtUAVDV58H6LpDYEcTcv4CIFSkgs6dJ9TavCW
NyPBZRpM2R+Rg5eVqlborp7TmktBP/sSsxc8eJ+3P2aQWSWc5ol74Y0OznJUCrBr
bIdypJllsD9Fe+h7gLBXTh3vdBEWr2lR+xA+Oou8UlO2gFbVFQqMafUgU1s0vqaE
/hHH0TzwD0/tJ6eqIbHwVR/Bu6kHFK4PwePovhfvyYD9Y+C0vOYd5Ict2vbLHz1f
QBDZObv4M6KN3j7nzme47hKtdMd+LwFqxM5cXfM6b5doDulWPmuGV78VoX6OR7el
x1tlfpuiFeuXYnImm5nTawArcQ1UkXUSYcTUKShJebRDLR3BycxR39Q9jtbOQ29R
FumHginovEhdUcinRr22eRXgcmzpR00zFIWoFCwHh/OCtG14nFhefuZ8Z80qbVhW
2J9+/O4tksv9HtQBmQNOK5S8C4HNF2M8AfOWNTr8esFSDc0YA5/cxzdfOOtWam/w
lBpNcUUSSgddRsBwijPuWhVA3NmA/uQlJtAo4Ji5vo8cj5MTPG3+U+rfNqRxu1Yc
ioXRo4LzggPscaTZX6V24n0fzw0J2k7TT4sX007k+7YXwEMqmHpcMYbDNzdCzUer
Zilh5hihJwvGfdi234W3GofttoO+jaAZjic7a3p6cO1ICMgfVqrbZCUQVQARAQAB
tEZDZW50T1MtNiBLZXkgKENlbnRPUyA2IE9mZmljaWFsIFNpZ25pbmcgS2V5KSA8
Y2VudG9zLTYta2V5QGNlbnRvcy5vcmc+iQI8BBMBAgAmBQJOD9OjAhsDBQkSzAMA
BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQCUb8osEFud6ajRAAnb6d+w6Y/v/d
MSy7UEy4rNquArix8xhqBwwjoGXpa37OqTvvcJrftZ1XgtzmTbkqXc+9EFch0C+w
ST10f+H0SPTUGuPwqLkg27snUkDAv1B8laub+l2L9erzCaRriH8MnFyxt5v1rqWA
mVlRymzgXK+EQDr+XOgMm1CvxVY3OwdjdoHNox4TdVQWlZl83xdLXBxkd5IRciNm
sg5fJAzAMeg8YsoDee3m4khg9gEm+/Rj5io8Gfk0nhQpgGGeS1HEXl5jzTb44zQW
qudkfcLEdUMOECbu7IC5Z1wrcj559qcp9C94IwQQO+LxLwg4kHffvZjCaOXDRiya
h8KGsEDuiqwjU9HgGq9fa0Ceo3OyUazUi+WnOxBLVIQ8cUZJJ2Ia5PDnEsz59kCp
JmBZaYPxUEteMtG3yDTa8c8jUnJtMPpkwpSkeMBeNr/rEH4YcBoxuFjppHzQpJ7G
hZRbOfY8w97TgJbfDElwTX0/xX9ypsmBezgGoOvOkzP9iCy9YUBc9q/SNnflRWPO
sMVrjec0vc6ffthu2xBdigBXhL7x2bphWzTXf2T067k+JOdoh5EGney6LhQzcp8m
YCTENStCR+L/5XwrvNgRBnoXe4e0ZHet1CcCuBCBvSmsPHp5ml21ahsephnHx+rl
JNGtzulnNP07RyfzQcpCNFH7W4lXzqM=
=jrWY
-----END PGPPUBLIC KEY BLOCK-----


 

五、卸载RPM重建数据库(erase/rebuilddb

卸载:软件卸载要注意顺序

用法

[root@localhost ~]# rpm �Ce 软件名


:卸载bind

[root@localhost~]# rpm -qa | grep bind
bind-utils-9.8.2-0.10.rc1.el6.i686
bind-9.8.2-0.10.rc1.el6.i686
bind-libs-9.8.2-0.10.rc1.el6.i686
samba-winbind-clients-3.5.10-125.el6.i686
PackageKit-device-rebind-0.5.8-20.el6.i686
[root@localhost~]# rpm -e bind


 

重建数据库RPM软件的安装、升级、删除会导致RPM数据库/var/lib/rpm内的文件损坏,使用―rebuilddb可以重建

用法

[root@localhost ~]# rpm --rebuilddb



你可能感兴趣的:(rpm,rebuilddb)