RPM软件包管理器
软件包管理器:
打包成一文件:二进制程序,库文件,配置文件,帮助文件
生成数据库,追踪所安装的每一个文件
软件包管理器的核心功能:
1、制作软件包
2、安装、卸载、升级、查询、校验、数据库的重建、验证数据包等工作;
三大软件包生产商:Redhat,SUSE,Debian
Redhat,SUSE:RPM
Redhat Package Manager
PRM is Package Manager
Debian:dpt
依赖关系:
X-->Y-->Z
X-->Y-->Z
前端工具:yum apt-get
后端工具:rpm dpt
rpm命令:
rpm
数据库:/var/lib/rpm
软件包下载原则:
1、来源合法
2、软件包本身是完整的
rpm命名:
包:组成部分
例如:
主包:
bind-9.7.1-1.el5.i586.rpm
子包:
bind-libs-9.7.1-1.el5.i586.rpm
bind-utils-9.7.1-1.el5.i586.rpm
包名格式:
name-version-release.arch.rpm
名称 版本号 发行号 平台 后缀名
name-major.minor.release-release.arch.rpm
名称 主版本号 次版本号 发行号 平台 后缀
主版本号:重大改进
此版本号:某个子功能发生重大变化
发行号:修正了部分bug,调整了一点功能
rpm:
1、安装:
rpm -i /PATH/TO/PACKAGE_FILE
-h:以#号显示进度:每个#号表示2%
-v:显示详细过程
-vv:显示更详细的进程
rpm -ivh /PATH/TO/PACKAGE_FILE
以下rpm包都是在本地ftp服务器上下载的:
错误的依赖关系
--nodeps:忽略依赖关系,但装上不能用;
--replacepkgs:重新安装,替换原有安装;
--force:强行安装,可以实现重装或降级;
--test:测试能否安装
2、查询
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
rpm -qpl /PATH/TO/PACKAGE_FILE
3、升级
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级,否则,则安装;
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级,否则,退出;
--oldpackage:降级
4、卸载
rpm -e PACKAGE_NAME:如果某个软件包被其它软件包依赖是不允许卸载的
--nodeps:强行卸载
5、校验
rpm -V PACKAGE_NAME:
S:文件大小发生改变
M:权限发生改变
5:MD5改变
D: Device major/minor number mismatch
L:路径不匹配
U:属主不匹配
G:属组发生改变
T:mTime differs
在标记文件里编写一行内容
6、重建数据库
rpm
--rebuilddb:重建数据库,一定会重新建立;
--initdb:初始化数据库,没有才建立,有就不用建立;
如果里面文件损坏,就必须重建数据库
7、检验来源合法性,及软件完整性
加密类型:
对称:加密解密使用同一密钥
公钥:一对儿密钥,公钥,私钥:公钥隐含于私钥中,可以提取出来,并公开出去;
单向:
# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-redhat-release
rpm -K /PATH/TO/PACKAGE FILE 验证合法性
dsa,gpg:验证来源合法性,也即验证签名;可以使用--nosignature,略过此项
shal,md5:验证软件完整性,可以使用--nodigest,略过此项
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 先导入密钥文件才能验证来源合法性
必须先导入密钥文件,然后才能验证合法性
本文出自 “非专业linux爱好者” 博客,转载请与作者联系!