『学了就忘』Linux软件包管理 — 44、在RPM包中提取文件
1、RPM包中文件的提取
为什么要做这个事呢?
在操作Linux系统的时候误删除一个文件,可以通过强制覆盖的方法可以把删除的文件还原。如果不是误删除,我只是修改了文件中的内容,但是我忘记源文件内容是什么,我修改不回来了。这个时候强制安装覆盖(--force
选项)就解决不了问题了。因为强制安装覆盖,并不会对现已存在的文件做修改。Linux系统怕软件的强制安装覆盖把你现有的配置清空了。
像上面的情况,我想得到文件原来的状态,靠强制安装覆盖是行不通的。但你可以把文件删除了,在进行强制安装覆盖不就还原了,这样是可以的,但是我们还可以用一种方式来恢复,就是下面讲的RPM包中文件的提取。
提示:
其实在修改重要系统文件之前,应该先把文件做一下备份处理。
[root@localhost ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
然而你忘记了备份,然后文件你修改错误了,无法还原了,而且这个文件还不能删除。这种情况下,就需要使用RPM包的文件提取了。
RPM包中文件的提取,其实就是直接从RPM包中提取一个或者几个我需要的文件。
2、在RPM包中提取文件的操作
(1)cpio命令介绍
cpio
命令主要有三种基本模式:
-o
模式:指的是copy-out
模式,就是把数据备份到文件库中;-i
模式:指的是copy-in
模式,就是把数据从文件库中恢复;-p
模式:指的是复制模式,就是不把数据备份到cpio
库中,而是直接复制为其他文件。
说明:
cpio
命令本来是做备份和还原的,但是这个命令的备份和还原极其不方便。(不推荐用cpio
命令做备份和还原),了解一下即可,具体例子也不用说了。- 如果需要从RPM包中提取文件,只能使用
cpio
命令,因为RPM是二进制包,需要用到特殊的格式来处理二进制包,而cpio
命令就符合。 - 换句话总结就是:不推荐用
cpio
命令做备份和还原,还有其他更好的方式。但是可以用来做在RPM包中提取文件的事情。
注:
cpio
命令做备份和还原例子就不总结了,需要的自己扩展,本文直接介绍运用cpio
命令在RPM包中提取文件的使用。
(2)提取RPM包中文件
提示:上边介绍了
cpio
命令,现在就用cpio
命令来提取RPM包中需要的文件。
[root@localhost ~]# rpm2cpio 包全名|cpio-idv .文件绝对路径
rpm2cpio <— 将rpm包转换为cpio格式的命令
cpio <— 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
注意:
上边命令中的.
,是表示当前目录,把提取出来的文件放入当前目录。如果不写.
,提取出来的文件,会直接提取到文件的安装目录中,覆盖掉原有的配置文件。这不符合我们的操作习惯,我们的习惯是,把现有的文件和提取出来的文件进行比对,看看有什么不同,然后在确定是否替换,或者修改现有文件。
1)首先要确定文件属于哪个软件包
还记得-qf
选项嘛,我们就需要这两个选项,命令如下:
[root@localhost ~]# rpm -qf /etc/httpd/conf/httpd.conf
httpd-2.2.15-53.e16.centosx86-_64.rpm
2)从RPM中提取文件
[root@localhost ~]# rpm2cpio /mnt/cdrom/packages/httpd-2.2.15-53.e16.centosx86-_64.rpm | cpio -idv ./etc/httpd/conf/httpd.conf
3)注意一下几点:
/mnt/cdrom/packages/httpd-2.2.15-53.e16.centosx86-_64.rpm
表示RPM包路径。- RPM包中文件的路径和文件绝对路径(系统中的文件路径)是相等的,一样的。
./etc/httpd/conf/httpd.conf
表示,当前目录下有一个/etc/httpd/conf/httpd.conf
文件。到时候比对httpd.conf
文件和现有文件,在决定下一步的操作。
如下图所示:
可以看到只从RPM包中提取了一个httpd.conf
文件。
提示:只是知道有这个功能即可,需不需要用看你自己的实际情况。
『学了就忘』Linux软件包管理 — 44、在RPM包中提取文件的更多相关文章
- 『学了就忘』Linux软件包管理 — 43、RPM包的校验和证书
目录 1.RPM包的校验 (1)RPM包校验基本命令 (2)校验某个系统文件是否被修改举例 (3)验证内容中8个信息的具体内容 (4)文件类型有哪些 2.RPM包的证书 (1)数字证书 (2)数字证书 ...
- 『学了就忘』Linux服务管理 — 77、RPM包安装基于xinetd的服务的管理
目录 1.基于xinetd服务的启动管理 (1)telnet服务安装 (2)telnet服务启动 2.基于xientd服务的自启动管理 现在Linux系统中基于xinetd的服务越来越少了,但Linu ...
- 『学了就忘』Linux服务管理 — 76、RPM包安装的服务管理
目录 1.独立服务的启动管理 2.独立服务的自启动管理 方式一: 方式二:(推荐) 方式三: 3.验证 1.独立服务的启动管理 (1)使用/etc/init.d/目录中的启动脚本启动服务(推荐) [r ...
- 『学了就忘』Linux软件包管理 — 42、对RPM软件包的查询操作
目录 1.查询RPM软件包是否安装 2.查询系统中所有已安装的RPM软件包 3.查询RPM软件包的详细信息 4.查询RPM软件包中的文件列表 5.查询系统文件属于哪个RPM包 6.查询RPM软件包所依 ...
- 『学了就忘』Linux软件包管理 — 40、Linux系统软件包介绍
目录 1.Linux系统软件包分类 2.源码包说明 3.二进制包说明 4.RPM包的优缺点 4.RPM包的两种安装方法 5.总结 1.Linux系统软件包分类 Linux系统下的软件包只有源码包和二进 ...
- 『学了就忘』Linux软件包管理 — 47、Linux源码包的安装和卸载
目录 1.源码包安装服务的注意事项 2.源码包安装服务的过程 3.源码包安装服务的删除 4.源码包安装服务的启动 5.源码包安装服务的关闭 1.源码包安装服务的注意事项 (1)安装服务选择哪种软件包? ...
- 『学了就忘』Linux软件包管理 — 49、拓展:Linux中通过脚本安装程序
目录 1.脚本程序简介 2.Webmin安装 (1)简介 (2)安装 (3)使用 1.脚本程序简介 脚本程序包并不多见,所以在软件包分类中并没有把它列为一类.它更加类似于Windows下的程序安装,有 ...
- 『学了就忘』Linux软件包管理 — 46、yum命令详细介绍
目录 1.yum命令的查询操作 2.使用yum命令安装服务 3.使用yum命令升级服务 4.使用yum命令卸载服务 5.yum组管理命令 (1)查询可以安装的软件组 (2)查询软件组内包含的软件 (3 ...
- 『学了就忘』Linux软件包管理 — 45、yum源文件详细说明
目录 1.yum源文件解析 2.查看yum源文件 3.搭建本地光盘yum源 第一步: 第二步: 第三步: 提示:RPM包的在线安装就是yum安装,yum安装需要依据yum源文件内容配置来寻找软件.本文 ...
随机推荐
- npm install失败或者进度卡住解决办法 以及 nrm的使用
今天在使用npm install安装url-loader时,遇到下载进度条停止问题 因为已经提前更换了 淘宝的镜像,应该不是网络问题,通过 npm config set loglevel info 显 ...
- 利用Java Agent进行代码植入
利用Java Agent进行代码植入 Java Agent 又叫做 Java 探针,是在 JDK1.5 引入的一种可以动态修改 Java 字节码的技术.可以把javaagent理解成一种代码注入的方式 ...
- NER为什么那么难
命名实体识别(Name Entity Recognition) 是自然语言处理中一个比较基础的问题.要解决的问题是,从unstructure的文本当中找到实体并归类.当然我这么定义已经有了一定的bia ...
- Java8新特性——Lambda 表达式
Lambda 表达式 Lambda 表达式的实质属于函数式编程. 语法格式为:(parameters) -> expression ...
- Spring Boot引入Swagger并对界面进行美化
Swagger是一个接口文档生成工具,在前后端分离的开发中经常会用到,下面就来介绍下Swagger的使用: 引入依赖 <dependency> <groupId>io.spri ...
- Apache Beam入门及Java SDK开发初体验
1 什么是Apache Beam Apache Beam是一个开源的统一的大数据编程模型,它本身并不提供执行引擎,而是支持各种平台如GCP Dataflow.Spark.Flink等.通过Apache ...
- Serverless Kubernetes 和 Serverless on Kubernetes 的区别
什么是 Kubernetes? Kubernetes 是一个可移植的.可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化. 什么是 Serverless ? 无服务器是一种云原 ...
- nsq - 一条消息的生命周期(一)
经过前面几篇的学习,相信大家对nsq已经有了一个大概的了解,我在写这篇文章的时候也看了很多其他人写的教程,发现大家对于分析系统每个点写的很不错,但是都很少有整体串起来一起走一遍,所以,我打算分成2-3 ...
- Java:NIO 学习笔记-2
Java:NIO 学习笔记-2 上一篇 NIO 学习笔记-1 看了 尚硅谷 的相应教程,此处又对比看了 黑马程序员 的课程 JAVA通信架构I/O模式,做了相应的笔记 前言 在 Java 的软件设计开 ...
- Java:多线程计数
Java:多线程计数 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 1. CountDownLatch 概念 让一些线程阻塞直到另一些线程完成一系列操作才被唤醒 ...