3.3RPM包的升级和卸载与校验与文件提取

三、rpm升级与卸载

1、升级命令和安装命令只有一个区别。rpm -ivh    升级为rpm  -Uvh

2、升级包 用的也是包全名;新的升级包对于系统还是一个全新的包,所以要用包全名。

3、升级顾名思义,就是要有一个比当前版本更高的这样一个包才能升级,如果安装包装过了这个命令就不会再执行,如果没装过,这个升级命令就相当于安装命令。



1、因为这包安装过,直接可以使用包名。在操作安装时,会把包名写入到/var/lib/rpm/这个目录的数据库中,卸载时,是直接去数据库中找包名。


2、同理,卸载时,也没有必要一定在Passages这个目录下,卸载也是去数据库中找的。(安装时一定是在绝对路径或者再Passages这个目录下进行的)

3、卸载也有依赖性。


扫描二维码关注公众号,回复: 2044421 查看本文章


我们在安装阿帕奇时,先安装的tools ,再安装的2.2主包,然后装的manual包;那么在卸载的时候,就要先卸载manual包在卸载2.2 再卸载tools 包。

卸载命令中同样有选项--nodeps。但是使用不检查依赖性后,卸载了主包后,tools manual也不可再使用。

   注意:这里卸载rpm包是通过指令来卸载,为什么不是直接删除相应文件夹来卸载?  因为rpm包安装时是安装到默认的文件路径,如果凭自己亲自删除文件,可能无法删除干净;但是对于源码包的安装,则可以直接删除相应文件夹,因为源码包安装的时候是要指定文件位置。

四、RPM的查询

RPM包的安装和卸载都应为依赖包存在使得安装和卸载操作不方便,我们一般使用yum来安装卸载rpm包。但是yum无法实现查询。rpm 还是需要rpm命令。



rpm -qa  | grep  httpd 可以查到包含httpd 的所有包。常用


rpm  -qi  包名   查询已经安装的包的信息。这个信息是写rpm包的作则写入的。可以查询包的官方网站

rpm  -qip  包全名  查询未安装的包的信息。要在Packages这个目录下。信息也是作者写入的。


既然这个包是包,说明包中就不止一个文件,这些文件在什么位置,可以用rpm -ql 查询文件位置

rpm -qlp  包全名,查询未安装包打算装的位置。


日志、运行文件


其他软件的文件安装位置:默认位置,常规位置,可更换


既然我们能知道这个包的文件安装的位置,那我们知道一个文件名,如何知道是属于哪个安装包


rpm  -qf  系统文件名

哪我们cd 到etc下,找一个yum.conf  yum的配置文件,我们查询这个文件属于的rpm包


但是我们在系统中创建的文件,查询所属的包,结果是找不到的

手动创建的文件,不是rpm包安装出来的。


查询阿帕奇安装需要依赖的包

但是这个查询意义不大。图中看到httpd 依赖linux的标准shell(bash)。linux的文件都是之前装好的。不如安装httpd是让报依赖性错误。


五、RPM包校验




然后我们进入到这个文件,修改下文件内容

加了个abc的注释

然后校验阿帕奇就会提示这个文件被修改了。一旦有提示,则表明这个文件被修改,(注意是否被攻击)。

1、校验结果显示s 说明文件大小被修改;

2、没有显示M证明权限未做修改;

3、5 代表md5校验和,我们用md5校验码验证软件的完整性(是否丢包、内容被串改等信息);

4、c 表示的是文件类型为配置文件。正常;如果显示g就要注意,是否出现漏洞或者被攻击。





作用举例:将系统重要文件或者命令误删了怎么处理:


如果将ls 命令文件误删后,就可以通过rpm包提取文件命令找回文件

我们所有文件都是通过rpm包安装的,我们可以将删除的文件在rpm包中打开,提取出来文件。


实验:



现在ls就可以正常使用。

猜你喜欢

转载自blog.csdn.net/purpletassels/article/details/79978183
今日推荐