首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >源RPM与用rpm2cpio和cpio解压缩RPM有什么不同?

源RPM与用rpm2cpio和cpio解压缩RPM有什么不同?
EN

Unix & Linux用户
提问于 2020-05-21 06:04:54
回答 1查看 380关注 0票数 0

我试图理解.srpm,也就是“源rpm”红帽包管理器包的使用。

据我所知,.srpm与标准.rpm不同,因为它提供了源代码,并且在开发过程中经常使用。我很困惑为什么这是有用的,因为如果我运行rpm2cpio ./myrpm-1.1-1.x86_64.rpm | cpio -idmv,我仍然可以查看源代码。

据我所知,即使是标准的RPM也会提取包含源代码的.tar.gz/bz文件,并最终构建此文件。请您澄清源RPM是如何不同的,为什么我要使用一个?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-05-21 06:27:07

我从未听说过RPM会删除源代码。也许有一些人这样做,但我想说,他们是罕见的。srpm包包括源代码和构建rpm包的说明。rpm包有编译过的代码,您可以运行这些代码,并且它们不包括源代码。也有例外。例如: Perl、python、PHP等不会像C或C++程序那样编译为二进制。对于这些rpm包,包括源文件,因为它们是及时解释或编译的(JIT)。因此没有编译的二进制文件,但是源代码是直接使用的。

当您想要构建rpm包时,通常会下载一个srpm并安装它。然后转到安装spec文件的rpmbuild/SPECS目录。然后你跑:

代码语言:javascript
复制
rpmbuild -bb <package>.spec

这将建立rpm(s)。很常见的是,一个srpm规范会产生更多的rpm包:

代码语言:javascript
复制
<package>.rpm
<package>-devel.rpm
...

构建的rpm包存储在rpmbuild/rpm中。然后,您可以安装rpm包,这些包可以安装您可以运行的实际程序。

从rpm包中解压缩文件与安装rpm包非常不同。通过解压缩文件,您可以得到包文件。您可以尝试从解压缩的包文件中运行程序,但很有可能它无法工作。安装rpm包意味着,rpm确保也安装了该程序所需的所有库。如果在安装之前或之后需要任何其他操作,rpm包中的脚本将确保它们被执行。一些程序可能需要一个数据库,需要在安装时创建,另一个程序可能需要重新运行ldconfig来更新库缓存,另一个程序可能需要构建手册等等。如果您只是从rpm提取文件,这些脚本将不会被执行。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/588054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档