Linux 解包RPM文件并重新打包

Linux 解包RPM文件并重新打包,linux,solaris,rpmbuild,Linux,Solaris,Rpmbuild,我有一个RPM文件。我必须对RPM进行一些更改,重新打包并进行测试。有人能帮我吗?我想这是一个叫做补丁的概念。我开始用这个来修补第一个srpm。但基本思想是,获取srpm,安装srpm,在构建区域目录中创建补丁,并在规范文件中指定补丁文件%patch0-p1。然后进行rpm构建。打补丁快乐 修改没有源代码的RPM的最佳方法是遵循以下步骤: 使用rpm2cpio命令将rpm解压到一个目录中 在该子目录内进行必要的更改 制作一个“虚拟”等级库文件并构建它 该虚拟规范文件可能如下所示: Name: b

我有一个RPM文件。我必须对RPM进行一些更改,重新打包并进行测试。有人能帮我吗?

我想这是一个叫做补丁的概念。我开始用这个来修补第一个srpm。但基本思想是,获取srpm,安装srpm,在构建区域目录中创建补丁,并在规范文件中指定补丁文件%patch0-p1。然后进行rpm构建。打补丁快乐

修改没有源代码的RPM的最佳方法是遵循以下步骤:

  • 使用rpm2cpio命令将rpm解压到一个目录中
  • 在该子目录内进行必要的更改
  • 制作一个“虚拟”等级库文件并构建它
  • 该虚拟规范文件可能如下所示:

    Name: blah
    Version: 1.0
    Release: 1
    Summary: blah
    License: blah
    Distribution: blah
    Group: blah
    Packager: me
    BuildRoot: /path/to/dir/with/mods
    
    %description
    blah
    
    %files
    /path/to/dir/with/mods/*
    
    将此处的所有“废话”替换为实际值(使用
    rpm-qpirpm文件
    获取值)。将BuildRoot替换到已修改rpm展开的目录。然后运行
    rpmbuild-bb dummy.spec

    因为没有定义准备/设置/构建/安装步骤,所以它只需要获取buildroot中的内容并生成RPM

    如果rpm包中有脚本文件,那么还必须将它们放在这个虚拟规范文件中。要查看包中是否有脚本,请运行:
    rpm-qp--scriptsrpm文件
    。依赖项、prereq等也是如此

    我可能还遗漏了其他细节,但这应该足以让你开始


    更新:值得一提的是,我面临的主要问题是我没有RPM源。我只是有RPM构建,然后找到源RPM?只有SRPM之所以存在,这是合乎逻辑的,因为在修补时,我们需要源RPM而不是内置RMP。我可以知道rpm的名字吗?这是一个合适的应用程序构建rpm。Jsut希望确保在没有SRPMaha的情况下根本不可能编辑RPM。另一个问题。如果您想保护rpm的完整性,可能应该签署rpm包。您可能可以阅读rpmrebuild的此链接。如果不指定/修改
    rpmbuild
    BUILDROOT
    设置,则此链接无效。我认为
    %文件
    应该与
    BUILDROOT
    相关。