欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

rpm笔记

程序员文章站 2022-05-29 11:07:18
...

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,检验完整性;

 

相关标签: rpm