Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compilation 我想重新制作没有srpm的rpm包_Compilation_Rpm_Rpmbuild_Rpm Spec - Fatal编程技术网

Compilation 我想重新制作没有srpm的rpm包

Compilation 我想重新制作没有srpm的rpm包,compilation,rpm,rpmbuild,rpm-spec,Compilation,Rpm,Rpmbuild,Rpm Spec,目标 我有一个rpm包,但我想替换rpm中的几个文件,并创建一个新的rpm 背景 我找不到某个软件的srpm。我可以下载的是rpm软件包 操作 a。我通过rpmrebuild--package--notestinstall-sxxx.spec xxx.rpm从rpm获得了规范文件 b。我通过rpm2cpio-pkgname | cpio-ivd c。我将上述文件复制到~/rpmbuild/SOURCE中,并将xxx.spec复制到~/rpmbuild/SPECS中 d。我确实找到了rpmbuil

目标

我有一个rpm包,但我想替换rpm中的几个文件,并创建一个新的rpm

  • 背景

    我找不到某个软件的srpm。我可以下载的是rpm软件包

  • 操作

    a。我通过
    rpmrebuild--package--notestinstall-sxxx.spec xxx.rpm从rpm获得了规范文件

    b。我通过
    rpm2cpio-pkgname | cpio-ivd

    c。我将上述文件复制到~/rpmbuild/SOURCE中,并将xxx.spec复制到~/rpmbuild/SPECS中

    d。我确实找到了
    rpmbuild-bb xxx.spec
    ,但我发现
    文件未找到:
    用于每个文件

  • 问题:

    我不知道如何解决这个问题。我是否应该对
    rpm2cpio-pkgname | cpio-ivd
    中的文件进行tarball,然后修改spec文件

    或者我必须先安装rpm,然后尝试运行
    rpmrebuild
    来创建新的rpm

    我想知道解决这个问题的传统方法,非常感谢


  • 您确实需要打开该规范并使其适应所需的文件。 spec文件本身包含了大多数问题的答案:

    • Source
      标记将告诉您所需的源文件及其名称

    • %files
      部分将告诉您在构建rpm后,rpm中需要哪些文件


    我建议您打开另一个问题,发布spec文件和您通过
    rpm2cio

    提取的文件列表。我不知道有什么方法可以从rpm重新生成spec文件。可能是某些错误滑入了该规范文件;我认为您应该调整规范文件以使其正常工作;也许你的情况很好。我认为你做不到。看看可能的复制品。你真是太好了。谢谢你的帮助。我检查了您的建议,我知道从当前安装的rpm中重新生成rpm的三种方法。第一个是使用
    rpm repack
    ,第二个是使用
    rpm-e--repackage package_name
    ,最后一个是使用
    rpmrebuild
    。但不幸的是,这些方法并不能解决我的问题。因为我需要替换rpm中的一些原始文件,所以我想我必须修改spec文件,以便实现。