linux命令:rpm软件包管理
rpm命令简介:
rpm:软件管理器
数据库:/var/lib/rpm 用于软件进行查询相关操作的数据库。
rpmbuild:用于创建rpm软件包的工具
对软件进行安装、查询、卸载、升级、校验、数据库的重建、验证数据包等工作。
1.命令格式:
1、rpm命名规则:
主包:
Usage: httpd-2.2.15-15.e16.centos.i686.rpm
httpd:软件包名 2.2.15:软件版本号 15:软件发布的次数
e16.centos:适合的linux平台 i686:适合的硬件平台 rpm:rpm包扩展名
子包:
Usage:httpd-libs-2.2.15-15.i586.rpm
包名格式:
name-version-release.arch.rpm
bind-major.minor.release-release.arch.rpm
主版本号:重大改进才会改变
次版本号:某个子功能发生重大变化
发行号:修正了部分bug,调整了一点功能
2.命令功能:
进行软件的管理、安装、查询、卸载、升级、校验、数据库的重建、验证数据包等工作。
3.命令参数:
1、rpm 软件安装
rpm -i /PATH/TO/PACKACE-FILE -i:表示安装
-h:以#显示进度,每个#表示2%
-v:显示详细进度
-vv:显示更详细的信息
rpm -ivh
--nodeps:忽略依赖关系
--replacepkgs:重新安装,替换原有已安装的软件
--force:强行安装,可以实现重装或者降级;
2、查询已安装的rpm软件
rpm -q 包名 查询指定包是否已经安装
rpm -qa 查询已经安装的所有包
rpm -qi 包名:查询指定包的说明信息
rpm -ql 包名:查询指定包安装后生成的文件列表
rpm -qc 包名:查询指定包安装的配置文件
rpm -qd 包名:查询指定包安装的帮助文件
rpm -q --scripts 包名:查询指定包中包含的脚本
rpm -qf /path/to/somefile:查询指定的文件是由那个rpm包安装生成的
2.1、查询某rpm包尚未安装,需查询说明信息、安装以后会生成的文件
rpm -qpi /PATH/TO/PACKAGE_FILE(rpm的路径)
3、rpm升级
rpm -Uvh /PATH/TO/NAW_PACKAGE_FILE(新软件包):如果装有老版本的,则升级;否则,则安装;
rpm -Fvh /PATH/TO/NAW_PACKAGE_FILE(新软件包):如果装有老版本的,则升级;否则,退出;
rpm -ivh --oldpackage /PATH/TO/OLD_PACKAGE_FILE:降级
4、卸载rpm包
rpm -e PACKAGE_NAME 卸载软件包
--nodeps:忽略依赖关系
5、校验rpm包
rpm -V PACKAGE_NAME 校验软件包
6、重建数据库
rpm
--rebuilddb:重建数据库,一定会重新建立
--initdb:初始化数据库,没有才建立,有就不用建立;
7、检验来源合法性,及软件包完整性;
加密类型:
对称:加密解密使用同一个密钥
公钥:一对儿密钥,公钥,私钥:公钥隐含于私钥中,可以提取出来,并公开出去;
单向:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 导入密钥文件 (只能验证r ehat系统 )
rpm -K /PAPT/TO/PACKAGE_FILE
dsa,gpg:验证来源的合法性,也即验证签名;可以使用--nosignature 略过此项
shal,md5:验证软件包完整性:可以使用--nodigest,略过此项
4.命令实例:
1、查询包是否安装
rpm -q gcc 查看gcc是否已经安装
[root@xuelinux gcc-4.5.1]# rpm -q gcc
gcc-4.4.7-4.el6.i686 表示已经安装gcc
rpm --qa gcc 查看gcc软件帮助文件
[root@xuelinux gcc-4.5.1]# rpm -qd gcc
/usr/share/doc/gcc-4.4.7/COPYING
/usr/share/doc/gcc-4.4.7/COPYING.LIB
/usr/share/doc/gcc-4.4.7/COPYING3
/usr/share/doc/gcc-4.4.7/COPYING3.LIB