【rpm】从rpm包中提取文件:rpm2cpio和cpio的使用

【rpm】从rpm包中提取文件:rpm2cpio和cpio的使用,第1张

rpm2cpio命令可以用于将rpm格式文件转为cpio格式的文件。

rpm是Linux中常用的文件格式,方便了用户的安装,但没有cpio格式灵活。

c pio是用来建立,还原备份档的工具程序,它可以加入,解开cpio或tar备份档内的文件。

一个典型的例子就是安装一个在rpm中so文件时,如果直接使用rpm安装,那么需要处理复杂的依赖关系,将rpm转为cpio,则可以方便地提取so文件,做个软连接,就可以解决了!
# which rpm2cpio

# rpm -ql /usr/bin/rpm2cpio

# type /usr/bin/rpm2cpio

# rpm2cpio --help

# man rpm2cpio
可以看出 rpm2cpio 是内置命令,不是安装某个rpm包提供的。

#  rpm2cpio packagerpm > packagecpio 
# which cpio

# rpm -qf /usr/bin/cpio

# yum info cpio

# cpio --help
cpio 可以从 cpio 或 tar 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件。

 有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限,归档包可以是磁盘上的 其他文件, 也可以是磁带或管道。
1 在copy-out模式中, cpio 把文件复制到归档包中。它从标准输入获得文件名列表 (一行一个), 把归档包写到标准输出。生成文件名列表的典型方法是使用find 命令; 你可能要在 find 后面用上 -depth选项, 减少因为进入没有访问权限的目录而引起的麻烦。

2 在copy-in模式中, cpio 从归档包里读取文件, 或者列出归档包里的内容。它从标准输入读入归档包。任何不是选项的命令行参数被视为shell的通配符模式串 (globbing pattern); 在归档包中, 只有文件名匹配这些模式串的文件才能复制出来。 和 shell 中不一样, 文件名起始处的 '' 可以匹配模式串起始处的通配符, 文件名中的 '/' 也可以匹配通配符。 如果没有给出模式串, 那么将读出所有文件。

3 在copy-pass模式中, cpio把文件从一棵目录树复制到另一棵, 它结合了 copy-in 和 copy-out 的 *** 作, 但不使用归档包。 cpio从标准输入读取欲复制的文件名列表; 目标目录作为非选项的命令行参数给出。
cpio支持下列的归档格式: binary, old ASCII, new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, 和 POSIX1 tar。

"binary"格式是过时格式, 因为它保存文件信息的方法无法应用在不同体系的机器间移植。

"old ASCII" 格式可以跨平台使用, 但是不能用于超过 65536 个 i 节点的文件系统中。 

"new ASCII" 格式可以跨平台使用, 也适用于任意大小的文件系统, 但不是所有版本的 cpio 都支持; 目前只有 GNU 和 System VR4 的 cpio 支持。"crc" 格式 类似于 "new ASCII" 格式, 同时对每个文件计算校验和。cpio 在创建归档包时算出校验和, 解开文件时进行校验。 

"HPUX" 格式用于兼容 HP UNIX 的 cpio, 它用了独特的方法来保存设备文件。

"tar" 格式用以兼容 tar 程序。它不能归档文件名超过 100 个字符的文件, 也不能归档特殊文件 (块设备或字符设备)。

 "POSIX1 tar" 格式不能归档文件名超过 255 个字符的文件(小于, 除非文件名的最右边有一个 "/")。

缺省情况下, cpio 为了兼容老式的 cpio 程序, 创建 "binary" 格式的归档包,当展开归档包时, cpio 能够自动识别归档包的格式, 而且可以读取在其他字节顺序的机器上创建的归档包。
How do I extract the contents of an rpm

>

RPM文件,是记录只读存储器芯片数据副本——通常来自ROM卡带、计算机固件、或是街机主板——的电脑文件。该词多随游戏机模拟器使用,即将老游戏或电脑固件数据复制为ROM文件,供现代计算机使用模拟器软件运行。

RPM驱动提供了一个同RPM交互的API。内核代码调用RPM驱动来请求RPM管理和共享资源。内核代码也可以为RPM通知注册驱动,RPM通知在共享资源状态发生变化时发送。

扩展资料

RPM用于管理共享的SoC(系统级芯片)相关资源,其中包括总线,时钟,电源轨等。RPM的目标是满足SoC的 *** 作和性能要求的同时实现最大的功率节省。RPM接受多个RPM主控的资源请求。仲裁和聚合请求,并配置共享资源。RPM的主控方有应用处理器,调制解调处理器,以及一些硬件加速。

RPM给每个RPM的主控方提供了一个单独的寄存器区域。一般情况下,每个寄存器代表了一些共享资源。通常情况下,主控方通过写寄存器来请求资源,然后产生一个中断给RPM。RPM处理请求,向寄存器中写确认信息,然后产生中断给主控方。

参考资料来源:百度百科-RPM文件

rpm 包的安装有2种方式,第一种 rpm ivh 具体的rpm包的完整的文件名。例如:
rpm -ivh epel-release-6-8noarchrpm 这个办法最大的问题就是依赖包。有的还好,没有依赖,或依赖性不太复杂。如果依赖包你都已经安装了,或所要安装的软件具体需要那些依赖包你都很清楚了,并且都已经下载了,也可以使用rpm -ivh xxxxrpm yyyrpm zzzzzrpm的方式来安装。其中xxxxrpm是要安装的软件yyyyrpm 和zzzzrpm是它所依赖的。但是这种办法实践中未必可行。因为使用者未必清楚一个rpm包到底依赖什么,而且有的rpm,依赖包多达数十个,下载需要大量时间精力。下载完了,rpm -ivh后面还要写上几十个aaaaarpm bbbbbrpm cccccrpm效率低下容易出错足以把用户逼成半疯。
第2个办法,使用yum install
例如yum install espeak -y。这个espeak安装以后,再装星际译王就顺利了。这个办法需要网络畅通, yum配置正确。如果有某个安装包很长时间无法安装,也可以下载到本地。例如前段时间VirtualBox使用yum install安装就很慢。那么,可以去网上下载VirtualBox-50-500_101573_el6-1x86_64rpm,然后进入到该rpm包的保存目录
执行yum localinstall VirtualBox-50-500_101573_el6-1x86_64rpm -y

人们在电脑上使用压缩文件的目的是为了节省存储所占用的空间,并缩短传输时间,因此各方高手就研究出了不同的压缩技术,尽可能将文件压到最小。这期间创造了许多种压缩格式,这些常用的压缩格式包括有ZIP、RAR、7z、RPM、ACE等等。
今天我们谈论的主角是RPM,这种文件格式主要用于Linux *** 作系统,RPM文件在Linux系统中的安装最为简便。但平时大家常用的好压压缩软件并不支持RPM压缩文件,幸好在互联网发展日新月异的今天,我们现在有了新的选择,下面给大家推荐一款功能强大又完全免费的压缩软件HaoZip--好压。
1首先我们用资源管理器来看一个RPM文件,可以看到该文件有好压压缩软件的图标,双击该图标就会执行好压压缩软件,并打开该压缩文件(图1)。
图12打开后我们可以看到好压压缩软件的窗口,以及压缩文件内包含的内容。点击左边第二个工具图标解压缩到,便会打开解压缩路径及选项的对话窗口(图2)。
图23在解压缩路径及选项窗口中,我们需指定将文件放到哪里以及其他的设置。好压压缩软件内定是将文件解压缩到当前所在位置的下一层同名目录里,如果你想解压缩到其他目录,可以直接在树状结构中选择。此外有个很重要的选项高级标签里的解压文件路径,默认值是解压相对路径,因为有些压缩文件内含有路径,这种方式可以保留压缩包里原来的结构(图3)。
图34按确定就会开始进行解压缩,好压压缩软件会显示目前进行的进度,等解压缩完毕又会回到打开时的窗口,然后关闭好压压缩软件窗口。
5现在我们回到资源管理器,可以看到多了一个和压缩文件同名的目录,我们要的文件已经在这个目录里了。

Linux RPM全称是“RedHat Package Manager”,最早是Red Hat公司开发的,后来在CentOS、Fedora、SUSE都用它。而rpm包则是软件编译完成后按照RPM机制打包起来的一个文件,可以用rpm命令安装的一个软件安装包,它省去了Linux软件安装中编译的步骤,安装成功后软件就可以用了。

rpm文件是linux中一种常见的软件安装包的格式。

细节如下:

RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,也就是最早是著名Linux版本:Redhat中使用的。

它是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有RPM扩展名的文件。与Dpkg类似。

这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SuSE以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13382248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-25
下一篇 2023-07-25

发表评论

登录后才能评论

评论列表(0条)

保存