无法从 c7 elrepo kernel-lt-4.4.236-1.el7.elrepo.nosrc.rpm 中提取内核源 xz

问题描述

请让我知道我需要做什么才能从 rpm 中提取 linux-4.4.236.tar.xz

我的目标是提取内核源代码并将其重新打包以在构建过程中使用。我们为此使用标准模式,但一些 elrepo 包(特别是 kernel-lt-4.4.236-1.el7.elrepo.nosrc.rpm)发生了一些有趣的事情

列出包的内容

rpm -qlp kernel-lt-4.4.236-1.el7.elrepo.nosrc.rpm
warning: kernel-lt-4.4.236-1.el7.elrepo.nosrc.rpm: Header V4 DSA/SHA1 Signature,key ID baadae52: NOKEY
config-4.4.236-x86_64
cpupower.config
cpupower.service
kernel-lt-4.4.spec
linux-4.4.236.tar.xz 

列出 cpio 存档的内容

我们看到 linux-4.4.236.tar.xz。因此,我们将使用 rpm2cpio 方法并检查 cpio 存档的内容,但由于表缺少 linux-4.4.236.tar.xz

rpm2cpio kernel-lt-4.4.236-1.el7.elrepo.nosrc.rpm |cpio -t
config-4.4.236-x86_64
cpupower.config
cpupower.service
kernel-lt-4.4.spec

从存档中提取内容

当我们提取时,我们看到的是表格中的所有项目,而不是 linux-4.4.236.tar.xz

rpm2cpio kernel-lt-4.4.236-1.el7.elrepo.nosrc.rpm |cpio -idv
config-4.4.236-x86_64
cpupower.config
cpupower.service
kernel-lt-4.4.spec
514 blocks

解决方法

这是一个无源 RPM 并且根据 this blog post 此类包不包含源

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...