有时我们需要RPM包中的某个文件,如何解压RPM包呢?

RPM包括是使用cpio格式打包的,因此可以先转成cpio然后解压,如下所示:

rpm2cpio xxx.rpm | cpio -div

例如:

[root@localhost tmp]# rpm2cpio rpm-4.8.0-32.el6.x86_64.rpm |cpio -div

从rpm包提取rpm spec 的几种方法

包含了源码包

  • 先安装,然后在rpmbuild 目录直接可以查看文件
  • 不用安装 ,使用rpm2cpio
1
rpm2cpio myrpm.src.rpm | cpio -civ '*.spec'

没有源码

  • 使用rpmrebuild

    说明:不太好,那个只是基于从rpm包获取到的信息,生成的,实际运行可能会有问题

    安装rpmrebuild 的方法yum install -y rpmrebuild

参考命令

1
rpmrebuild -e -p plv8-2.1.0-6.fc28.x86_64.rpm

参考资料

https://stackoverflow.com/questions/5613954/extract-the-spec-file-from-rpm-package
https://blog.packagecloud.io/eng/2015/10/13/inspect-extract-contents-rpm-packages/

rpm 是红帽(RedHat)软件包管理工具,实现类似于 Windows 中的添加/删除程序功能

rpm -ivh install_rpm

tar xvf informix-linux.tar

inux下解压命令大全

.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
———————————————
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
———————————————
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
———————————————
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
———————————————
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName
———————————————
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
———————————————
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
———————————————
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解压:sEx x FileName.*
压缩:sEx a FileName.* FileName

sEx只是调用相关程序,本身并无压缩、解压功能,请注意!

gzip 命令

减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
语法:gzip [选项] 压缩(解压缩)的文件名该命令的各选项含义如下:

-c 将输出写到标准输出上,并保留原有文件。-d 将压缩文件解压。-l 对每个压缩文件,显示下列字段: 压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。-t 测试,检查压缩文件是否完整。-v 对每一个压缩和解压的文件,显示文件名和压缩比。-num 用指定的数字 num 调整压缩的速度,-1 或 –fast 表示最快压缩方法(低压缩比),-9 或–best表示最慢压缩方法(高压缩比)。系统缺省值为 6。指令实例:
gzip *% 把当前目录下的每个文件压缩成 .gz 文件。gzip -dv *% 把当前目录下每个压缩的文件解压,并列出详细的信息。gzip -l *% 详细显示例1中每个压缩的文件的信息,并不解压。gzip usr.tar% 压缩 tar 备份文件 usr.tar,此时压缩文件的扩展名为.tar.gz。

rpm命令使用简介

什么是rpm?rpm是RPM package manager的缩写,最早由RedHat公司提出的软件包标准,后来随着rpm的不断发展而又增加许多功能,逐渐的成为linux公认的软件包管理标准。支持该格式的厂商有RedHat linux、suse linux、Mandriva linux。

rpm命令十分强大,那么rpm命令究竟有什么功能呢?

1 查询已安装在linux系统中的rpm软件包的信息
2 查询rpm软件包安装文件的信息
3 安装rpm软件包到当前linux系统
4 从linux系统中卸载已安装的rpm软件包
5 升级当前linux系统的rpm软件包

(1)#rpm -qa后面不接参数用于查看系统中已经安装的所有的rpm包
(2)#rpm -q rpm包名用于查看系统中是否安装了该软件包,如果安装了,系统会显示完整的包名;如果没有安装,系统会提示”package bas is not installed”。
(3)#rpm -qi rpm包名用于查看系统中已经安装的rpm包的完整信息,包括该包的版本信息,安装时间和大小等。
(4)#rpm -ql rpm包名用于查看该软件包都安装到了那些位置。
(5)#rpm -qf 文件名用于查看某个文件使用那个rpm包安装的。
(6)#rpm -qpi rpm包名和#rpm -qpl分别用于查看没有安装的包的信息,注意下和(4)、(5)的区别。
(7)#rpm -ivh 包名用于安装rpm软件包,i代表安装、v代表可视化安装、h代表安装的时候显示进度。
(8)#rpm –force -irpm包用于强制安装rpm软件包,–force参数用于安装存在依存关系的rpm包。不过一般我们并不怎做,解决依存关系的较好的方法是使用#rpm -i 命令一起安装。
(9)#rpm -e rpm包名用于删除rpm软件包。rpm -e –nodeps 包名用于删除存在依存关系的软件包,该命令可以将和该包存在依存关系的所有的软件包统统删除。
(10)#rpm -Urpm包名用于对rpm包的升级。

以上所述是小编给大家介绍的有关解压rpm包的linux命令及rpm命令使用简介,希望大家喜欢。

下载

https://jaist.dl.sourceforge.net/project/rpmrebuild/rpmrebuild/2.14/rpmrebuild-2.14.tar.gz

安装

将其做成rpm包安装方便些。

rpmbuild -tb **tar

rpm -ivh /root/rpmbuild/RPMS/**.rpm