⑤ RPM 包的提取

通常情况下 RPM包的提取 并不常用,RPM 包是一个归档文件,里面包含有已经编译好了的文件,直观上确实可以提取包中的文件。

使用提取 RPM包 的情况可能是:在某些情况下需要最原始的文件,这就需要从包中去提取包中的文件。

1. 方式一

尝试使用了常见的解压软件来进行对 RPM 包的解压,这里我使用的是 360压缩(4.0.0.1500),提取的包是 tree-1.6.0-10.el7.x86_64.rpm 。

  • 使用的程序:360压缩(4.0.0.1500)
  • 提取的 RPM 包:tree-1.6.0-10.el7.x86_64.rpm
  • 操作系统平台:22H2

通过最后的解压能得到

... ...\tree-1.6.0-10.el7.x86_64\tree-1.6.0-10.el7.x86_64>tree
卷 计算机 的文件夹 PATH 列表
卷序列号为 7C5F-0129
E:.
└─usr
    ├─bin
    └─share
        ├─doc
        │  └─tree-1.6.0
        └─man
            └─man1

最后可以看到能解压到一个名为 usr 的文件夹这个文件夹共有4个文件,7个文件夹。

2. 方式二

使用 rpm2cpio 和 cpio 来对 RPM 包进行提取,rpm2cpio 实用程序可以将 RPM 的内容传递给 cpio 的特殊归档工具,cpio 可以提取前者所有文件或单个文件。

一般情况下会相当于当前工作目录创建子目录树,当然也可以提取指定的文件。

  • rpm2cpio:从 RPM 包管理器 (RPM)包中提取 cpio 存档
  • cpio:一种数据备份与恢复的工具
  • 提取的 RPM 包:tree-1.6.0-10.el7.x86_64.rpm 。
  • 操作系统平台:CentOS Linux release 7.5.1804 (Core)
[root@localhost test]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm | cpio -idmv
./usr/bin/tree
./usr/share/doc/tree-1.6.0
./usr/share/doc/tree-1.6.0/LICENSE
./usr/share/doc/tree-1.6.0/README
./usr/share/man/man1/tree.1.gz
177 blocks
[root@localhost test]# du -h usr/
64K     usr/bin
28K     usr/share/doc/tree-1.6.0
28K     usr/share/doc
8.0K    usr/share/man/man1
8.0K    usr/share/man
36K     usr/share
100K    usr/

[root@localhost test]# tree
.
├── tree-1.6.0-10.el7.x86_64.rpm
└── usr
    ├── bin
    │   └── tree
    └── share
        ├── doc
        │   └── tree-1.6.0
        │       ├── LICENSE
        │       └── README
        └── man
            └── man1
                └── tree.1.gz

7 directories, 5 files

看的出来除了tree-1.6.0-10.el7.x86_64.rpm,一共用7个文件夹,4个文件

3. 方式三

使用 alien 来进行,Linux发行版软件包格式中 转换的程序,这个软件也能进行文件的提取。

  • alien: 在不同的 Linux发行版软件包格式中 转换的程序
  • 提取的 RPM包:tree-1.6.0-10.el7.x86_64.rpm
  • 操作系统:Fedora release 39 (Thirty Nine)
[root@192 tom]# alien --scripts --generate tree-1.6.0-10.el7.x86_64.rpm
warning: tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
warning: tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
... ...
Directories tree-1.6.0 and tree-1.6.0.orig prepared.
[root@192 tom]# tree
.
├── tree-1.6.0
│   ├── debian
│   │   ├── changelog
│   │   ├── compat
│   │   ├── control
│   │   ├── copyright
│   │   └── rules
│   └── usr
│       ├── bin
│       │   └── tree
│       └── share
│           ├── doc
│           │   └── tree-1.6.0
│           │       ├── LICENSE
│           │       └── README
│           └── man
│               └── man1
│                   └── tree.1.gz
├── tree-1.6.0-10.el7.x86_64.rpm
└── tree-1.6.0.orig
    └── usr
        ├── bin
        │   └── tree
        └── share
            ├── doc
            │   └── tree-1.6.0
            │       ├── LICENSE
            │       └── README
            └── man
                └── man1
                    └── tree.1.gz

18 directories, 14 files
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值