软件包管理的功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序包的安装、升级、卸载、查询、校验、数据库维护。
下面我们来看看rpm包管理的解析
rpm包在redhat和s.u.s.e中有很大的应用
我们接下来就以centos系统中rpm包的管理做一些详细的功能解析
使用yum(rhel系列)安装时可以自动解决依赖关系d
rpm包命名格式:
name-version-release.arch.rpm
version:major.minor.release
major:主版本号(版本有大的更新); minor:次版本号(小更新)
release.arch:rpm包的发行号
release.os: 2.el7(平台).i386(架构).rpm archetecture(架构):i386, x64(amd64), ppc, noarch理器;
实际操作:
本机在服务器上已经成功下载zsh-4.3.10-9.el6.x86_64.rpm用此来实施
语法:rpm [options] [packages_file]
安装;-i,--install
rpm -ivh /path/to/rpm_package
-v;显示安装信息
-vv;显示更详细的安装信息
-h;以井号显示安装进度
--nodeps;忽略依赖关系(适用于卸载)
--force;强行安装(适用于卸载)
重装;--replacepkgs会覆盖原有信息
rpm -i --replacepkgs /path/to/rpm_name
[root@bucktan ~]# rpm -ivh --replacepkgs zsh-4.3.10-9.el6.x86_64.rpm
卸载;-e,--erase
rmp -e package_name
--allmatches卸载匹配所有指定名称的软件包
--nodeps忽略依赖关系
--test 测试卸载
升级;-u -f
升级或安装;
rpm -u /path/to/rpm_package
--oldpackage降级
在服务器上取了两个包:zabbix-2.4.0-1.el6.x86_64.rpm
zabbix-2.4.5-1.el6.x86_64.rpm
之前升级至zabbix-2.4.5-1.el6.x86_64.rpm
[root@bucktan]~# rpm -uvh --oldpackage zabbix-2.4.0-1.el6.x86_64.rpm
只升级;(若不存在旧版本则不会执行)
rpm -f /path/to/rpm_package
通常搭配vh使用;
rpm -uvh|-fvh /path/to/package
--nosignature 不检查包签名信息的合法性
注意;不要对内核执行升级操作
不同内核版本可以共存,因此可执行安装操作,但不建议升级
(重点) 查询;rpm {-q|--query} [select-options] [query-options]
查询包是否已安装;
rpm -q package_name
[select-options]:
rpm -qa查询所有已安装的包;
rpm -qf /path/to/file查询某文件是由那个包生成的;
-q --whatprovides file_name 查询指定的capability由哪个程序包所提供
-q --whatrequires file_name 查询指定的capability由哪个程序包所依赖
[query-options]:
rpm -ql package_name查询包安装后生成的文件;
rpm -qi package_name查询包的简要说明;
rpm -qd package_name查询包安装后生成的帮助文档;
rpm -qc package_name查询包安装后生成的配置文件;
rpm -qr package_name 查询指定软件包的依赖关系
rpm -q --scripts 查询包相关的脚本;
脚本分四类
preinstall 安装前脚本
postinstall 安装后脚本
preuninstall 卸载前脚本
postuninstall 卸载后脚本
查询未安装包的相关信息;-qp
rpm -qpl package_file 查询安装后会生成的的文件
rpm -qpi package_file查询包的简单描述信息;
可搭配其选项使用,如-qp --scripts
校验;检查安装后的文件是否被修改过
rpm -v package_name
[root@bucktan ~]# rpm -v zsh
s.5....t. c /etc/zshrc
返回的注释信息;
s file size differs 大小
m mode differs (includes permissions and file type) 头文件
5 digest (formerly md5 sum) differs md5
d device major/minor number mismatch
l readlink(2) path mismatch
u user ownership differs 属主
g group ownership differs 属组
t mtime differs 修改时间
p capabilities differ 能力改变了
校验来源合法性和软件的完整性
包完整性;单项加密机制(md5|sha1..)
来源合法性;公钥加密机制(rsa)
rpm -k /path/to/packagefile直接检验程序包来源合法性
rpm --checksig /path/to/package_file
--nosigeature:不检查来源合法性
--nodigest:校验时不检查包完整性
导入gpg密钥文件:
rpm --import /path/to/gpg-key-file
导入以后再做验证
数据库
位置:/var/lib/rpm
重建:
rpm --initdb:初始化
如果事先不存在一个数据库,则新建之
rpm --rebuilddb 重建
直接新建数据库,会覆盖原有库
以上就是如何进行rpm程序包管理功能解析的详细内容。
