软件包管理
软件运行环境
API 应用程序开发接口
ABI 二进制接口
Rpm包命名方式
Name-version-release-arch-rpm
例如
zziplib-devel-0.13.162-5.el7.i686.rpm
zziplib :主包名
dewel:次包名
0.13.162: 主版本号 次版本号 最小版本号
5:rpm包编译完后的版本
el7:系统版本号,代表centos7
i686:硬件架构
有的软件包硬件架构位置会有noarch的字样,表示与硬件架构无关,可以运行在任何架构的机器上。
常见的arch有:x86 i386 i486 i586 i686 x64—64 x64
互联网上的很多软件的发布,不一定是rpm的方式,都是以源代码的方式发布,源代码的方式发布会有各种后缀,但是一般都要tar打包,在打包的基础上压缩。
包的分类和拆包
Application-VERITION-ARCH.rpm 主包
Application-devel-VERITION-ARCH.rpm 开发子包
Application-tuils-VERITION-ARCH.rpm 工具子包
Application-libs-VERITION-ARCH.rpm 库包
库文件
查看二进制文件所依赖的库文件
Ldd /PATH/TO/BINARY_FILE
例如:ldd /bin/ls ldd /bin/bash
管理及查看本机装载的库文件:
Ldconfig
/sbin/ldconfig -p:显示本机已经缓存的所有可用库文件名及文件路径的映射关系。
配置文件:/etc/ld.so.conf /etc/ld.so.conf.d/*.conf
缓存文件:/etc/ld.so.cache
RPM包管理
Centos系统上使用rpm命令管理程序包
作用:
安装 卸载 升级 查询 校验 数据库维护
rpm包的安装
rpm -i /path/rpm 安装(要写具体路径)
-v或-vv 详细显示安装过程
-h 以#显示安装进度
-q 查询rpm包是否安装
-ql 查询rpm包的安装位置
一般rpm -ivh 一起使用
rpm -ivh – -test 测试安装,但不真正执行安装
– -nodeps 忽略依赖关系
– -repleasepkgs 覆盖安装rpm包
– -repleasefiles 覆盖安装rpm包中的单个文件。比如有两个包,其中个
别文件是一样的,就可以用此命令,只覆盖个别文件,而
不是整个rpm包。
– -nodigest 不检查包的完整性
– -nosignature 不检查包的合法来源
– -noscipts 不执行程序包脚本片段
%per 先运行脚本再安装rpm程序包 –nopre
%post 先安装rpm包再运行脚本 –nopost
%preun 先运行脚本后卸载rpm包 –nopreun
%postun 先卸载rpm包,再运行脚本 –nopostun
rpm包升级
rpm -U [install -option]
如果安装有旧版本,则升级,没有安装旧版本则安装。
注意:上图对于tree的安装,是在当前路径下安装的,所以没有写路径,如果不
在当前路径下,要写rpm包的完整路径。
Rpm -F [install-option]
如果安装有旧版本,则升级,没有安装旧版本则不执行任何操作。
– -oldpackage 降级
– -force 强行升级
包查询
rpm -e 卸载
-a 所有包
若包名记得不全,则可以rpm -qa | grep “”模糊搜索
-f 查看指定的文件由哪个安装包生成。
-p rpmfile(完整路径) 针对尚未安装的程序波文件做查询操作。
– -changelog 查询rpm的更改日志
Rpm -q [option] 配合q使用
– -changelog 查询rpm包的更改日志
-c 查询程序的配置文件
-d 查询程序的文档
– i rpm包的信息
-l 查看指定程序包安装后生成的所有文档
– -scripts 查看程序包自带的程序片段
-R 查看程序包的依赖关系
– -provides 列出指定程序包所指定的程序和功能
导入所需的公钥
Rpm -K rpmfile 检查包的完整性
例如
运行后有报错信息,这不是因为该包不完整,是因为系统现在没有检测能力。需要
导入公钥文件才能用。
导入 – -import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
再次执行-K命令就不会报错了。
rpm -qa gpg-pubkey* 下图显示的结果就是导入的密钥文件
RPM数据库
数据库重建
/var/lib/rpm
安装或卸载一个包,该数据库都会更新,该文件被破坏后,会造成rpm无法查询
Rpm包的信息。
Rpm – -initdb 初始化
如果事先不存在数据库,则新建,否则不执行任何操作,
Rpm – -rebuilddb 重建
无论当前存在与否,直接重新创建数据库。
原创文章,作者:zzd,如若转载,请注明出处:http://www.178linux.com/39357