http://www.csdn.net/ http://www.arm.com/zh/ https://www.kernel.org/ http://www.linuxpk.com/ http://www.51develop.net/ http://linux.chinaitlab.com/ http://www.embeddedlinux.org.cn http://bbs.pediy.com/
分类: 系统运维
2013-03-22 10:01:29
原文地址:Linux系统下软件包管理命令之rpm 作者:chrinux
一、RPM的全名为“RedHat Package Manager”,是由RedHat公司开发的。Rpm是以一种数据库记录的方式将所需要的套件安装到linux主机的一套管理程序
RPM主要优点:
⑴、由于已经编译完成并且打包,所以安装方便
⑵、由于套件信息已经记录在linux主机的数据库中,方便查询、升级、卸载。
RPM数据库在/var/lib/rpm
RPM数据库的建立可以利用rpm --rebuilddb命令。
RPM包名格式:
name-version-release.arch.rpm
name-version-release-release.arch.rpm
version:主版本号.此版本号.发行版本号.平台.rpm
主版本号改变:重大改进
次版本号改变:某个子功能发生重大变化
发行号:修正了部分bug,调整了一点功能
二、Rpm命令的详细用法
⑴、RPM软件安装命令:
rpm -i /PATH/TO/PACKAGE_FILE:安装软件包
rpm -h :以#显示安装进度,每个#表示2%
rpm -v :显示安装详细信息
rpm -vv :更详细的信息
rpm -ivh :一般都是组合使用
rpm --nodeps:忽略依赖关系。
rpm --replacepkgs|repackage:重新安装、替换原来安装。
rpm -ivh --oldpackage:降级安装。
rpm -ivh --force:强行安装,可以实现重装或降级
rpm --test:仅测试有没有依赖关系
⑵、 rpm软件查询命令:
rpm -q PACKAGE_NAME:查询指定的包是否安装
rpm -qa :查询以安装的所有包
rpm -qi PACKAGE_NAME:查询指定包的说明信息
rpm -ql PACKAGE_NAME:查询指定包安装后生成的文件列表
rpm -qc PACKAGE_NAME:查询指定包安装的配置文件
rpm -qd PACKAGE_NAME:查询指定包安装的帮助文件
rpm -q --scripts PACKAGE_NAME:查询指定包中包含的脚本
rpm -qf /path/to/somefile:查询指定的文件时由那个rpm包安装生成的
如果某个rpm包尚未安装,我们需要查询其说明信息,安装后会生成的文件
rpm -qpi /PATH/TO/PACKAGE_FILE
i:软件说明信息
rpm -qpl /PATH/TO/PACKAGE_FILE
l:软件安装生成文件列表
⑶、rpm软件升级命令:
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,则安装
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,则退出
rpm -Uvh --oldpackage 低版本的包:降级
⑷、rpm软件卸载命令:
卸载的时候此包不能被其他软件包依赖
rpm -e PACKAGE_NAME
rpm --nodeps:忽略依赖,可能会造成其他依赖此包的软件无法正常运行。
⑸、rpm软件校验命令:
rpm -V PACKAGE_NAME:无输出信息就是正常。
Fh:在zsh安装以后修改一下配置文件
⑹、rpm重建数据库:
数据库位置:/var/lib/rpm
rpm --rebuilddb:重建数据库,一定会重新建立。
rpm --initdb:初始化数据库,没有才建立,有就不用建立。
⑺、检验来源合法性及软件完整性:
红帽公钥:ls /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:导入秘钥文件
rpm -K /PATH/TO/PACKAGE_FILE
dsa,gpg:验证来源合法性,也即验证签名;可以使用--nosignature,略过此项
sha1,md5:验证软件包完整性;可以使用--nodigest,略过此项
rpm -K --nodigest /PACKAGE_NAME:只验证签名。
Fg:检验zsh文件包的完整性