rpm(redhat package manager)
rpm:红帽软件包管理器。
rpm包:是经过GCC编译过的二进制包
rpm包获取:系统安装盘镜像、网站rpmfind.net、某官网特定安装。
- rpm包格式说明:
以zsh为例:
ls /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
# 注:系统镜像源已经事先挂载到了/mnt下,所以此命令生效!
zsh | -5 | 0. | 2- | 28. | el7. | x86_64.rpm |
---|---|---|---|---|---|---|
软件名 | 主版本号 | 次版本号 | 修订 | release(第几次发布版本) | 操作系统版本(centos7) | 软件包是64位包 |
注意:修订指的是第几次修改bug;而发布仅仅是发布,可能只是对软件参数等做了微调。
- 基本命令参数:
- -i 是install的意思, 安装软件包
- -v 显示附加信息,提供更多详细信息
- -V 校验,对已经安装的软件进行校验
- -h --hash 安装时输出####标记
- 用法:rpm -q(query) 常与下面参数组合使用:
- -a(all) 查询所有已安装的软件包
- -f(file)系统文件名(查询系统文件所属哪个软件包),反向查询
- -i 显示已经安装的rpm软件包信息,后面直接跟包名
- -l(list) 查询软件包中文件安装的位置
- -p 查询未安装软件包的相关信息,后面要跟软件的命名
- -R 查询软件包的依赖性
注意:rpm包有全名和简名之分
全名:一般在安装更新升级时用到
简名:对已安装的包进行操作时。–>他默认去/var/lib/rpm下去搜索。
当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下。
- rpm 安装实例(从本地安装):
rpm -ivh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
cat /etc/shells #查看下本地有多少种shell
- rpm安装实例(从网上安装):
rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#安装centos epel扩展yum源。 注:epel源是对centos7系统中自带的 base源的扩展。
-
rpm查询:
-
查询指定包是否安装
rpm -qa #查询所有已安装的包
rpm -qa | grep vim #查询所有已安装包中带vim关键字的包
- 查询已安装包的详细信息及作用,如:
rpm -qi lrzsz
- 查询未安装包的详细信息
rpm -qpi /mnt/Packages/php-mysql-5.4.16-42.el7.x86_64.rpm
-
查看rpm安装后,会生成哪些文件
-
查看包内容是否被修改:
- rpm -V包名
- rpm -Vf 文件路径
注:如果出现的全是点,表示测试通过
出现下面的字符代表某测试的失败:
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件
再后面的c 文件名,它表示的是文件类型
c 配置文件
d 普通文件
g 不该出现的文件,意思就是这个文件不该被这个包所包含!
l 授权文件(license file)
r 描述文件-
实例(查看系统中所有的rpm包及其文件是否被串改):
rpm -Va > rpm_check.txt #此处将结果进行重定向 # 注意:检验时参考了 /var/lib/rpm 目录下的rpm 数据库信息!!
-
-
rpm包的卸载
用法:rpm -e(erase) 包名
如:rpm -e zsh
rpm -e --nodeps zsh #此参数忽略依赖,建议卸载时不要卸载依赖包,最好用yum。
- rpm包的升级:
如:
rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
#因为升级时会有一些依赖包要解决。 所以最好使用"yum update 包" 来升级。
- 解决rpm依赖关系:
如: