rpm笔记
RPM是什么?
rpm是redhat开发的通用的后台软件包管理程序(前台的是yum),全称为redhat package manager,后来大家都支持了,就改为rpm package manager,(SUSE也支持rpm,DEBIAN的是dpkg;) 用于Linux软件包的安装、查询、卸载、升降级、校验等等
RPM安装
rpm -ivh /path/package_file 安装, i表示安装,v表示显示详细信息,vv更加详细信息,h以###显示安装进度;
--nodeps: 忽略依赖关系
--replacepkgs: 重新安装,替换原有安装
--force: 强行安装
RPM查询
rpm -q PACKAGE_NAME 只提供包名即可,查询提供的包名是否安装,eg rpm -q yum
rpm -qa PACKAGE_NAME 列出所有的包 eg rpm -qa | grep yum
rpm -qi PACKAGE_NAME 查询指定包的说明信息
rpm -ql PACKAGE_NAME 查询指定包安装后生成的文件列表路径等详细信息
rpm -qf PACKAGE_NAME 查询指定的文件是由哪个rpm包安装生成的
rpm -qc PACKAGE_NAME 该包的配置文件
rpm -qd PACKAGE_NAME查看指定的帮助文件
rpm -q --script PACKAGE_NAME 查看rpm包安装或卸载所用的脚本;
rpm -qpl 或 -qpi /PATH/PACKAGE 未安装的包进行查看相关信息或者路径等,需跟上相关参数-l或者-i等
RPM升降级:
rpm -Uvh /PATH/PACKAGE_NAME :如果装有老版本,则升级,否则安装
rpm -Fvh /PATH/PACKAGE_NAME: 如果装有老版本,则升级,否则退出
rpm --oldpacketage 降级
RPM卸载:
rpm -e PACKAGE_NAME: 卸载rpm包
--nodeps 取消依赖
RPM校验
rpm -V PACKAGE_NAME 校验rpm包,如果没有输出则正常,如果软件包被篡改,则显示异常;主要为了防止有人将包中嵌入病毒后门之类的;生产系统中用网上的rpm包一定要校验;
如下显示,一开始rpm显示正常,当我随意修改任意一个文件的时候,再校验的时候就会报出异常;
异常显示S.5....T.
S: 文件大小不一致
M: 权限和类型不一样
5: 摘要不一致,以前是md5,后来改了
D: 设备主次要号不匹配
L: 路径不匹配
U:属主不一致
G:属组不一致
T: mtime不一致
[[email protected] tmp]# rpm -ql pigz
/usr/bin/pigz
/usr/bin/unpigz
/usr/share/doc/pigz-2.3.3
/usr/share/doc/pigz-2.3.3/README
/usr/share/doc/pigz-2.3.3/pigz.pdf
/usr/share/man/man1/pigz.1.gz
[[email protected] tmp]#
[[email protected] tmp]#
[[email protected] tmp]# rpm -V pigz
[[email protected] tmp]# echo "Hello, this is virus hide in this file" >> /usr/share/doc/pigz-2.3.3/README
[[email protected] tmp]# rpm -V pigz
S.5....T. d /usr/share/doc/pigz-2.3.3/README
[[email protected] tmp]# README
RPM重建内置数据库
rpm --rebuilddb: 重建数据库
rpm --initdb: 初始化内置数据库
RPM检验来源合法性即包完整性
rpm -K /PATH/PACKAGE_NAME
dsa, gpg 检验合法性,即签名
sha1,md5,检验完整性;
上一篇: PHP MySQL入门教程之从数据库读取数据_PHP教程
下一篇: 制作src.rpm包(龙芯适用)