【问题标题】:How to change %install section in spec file?如何更改规范文件中的 %install 部分?
【发布时间】:2015-12-28 12:01:00
【问题描述】:

我尝试使用 rpmbuild 命令在 RHEL6 中构建二进制文件。它在 rpmbuild 命令执行期间抛出 file not found error。但在 RHEL5 中,相同的 rpmbuild 命令运行良好。

RHEL5执行结果:

*执行(%install): /bin/sh -e /var/tmp/rpm-tmp.77266

  • umask 022
  • cd /usr/src/redhat/BUILD
  • LANG=C
  • 导出郎
  • 取消显示*

RHEL6执行结果:

*执行(%install): /bin/sh -e /var/tmp/rpm-tmp.BeMhyH

  • umask 022
  • cd //rpmbuild/BUILD
  • '[' //rpmbuild/BUILDROOT/ '!=' / ']'
  • rm -rf //rpmbuild/BUILDROOT/ ++ 目录名 //rpmbuild/BUILDROOT/
  • mkdir -p //rpmbuild/BUILDROOT
  • mkdir //rpmbuild/BUILDROOT/
  • LANG=C
  • 导出郎
  • 取消显示
  • /usr/lib/rpm/check-buildroot*

我无法在规范文件之间找到任何 %install 更改。任何人请帮助我了解我做错了什么?

在此先感谢..!

【问题讨论】:

    标签: rpmbuild rhel5 rhel6


    【解决方案1】:

    较早的建议是将目标 buildroot 作为%install 的第一步。为了帮助强制区分 %build%install 步骤,较新版本的 rpmbuild 严格执行它,第一步为您执行此操作,如您粘贴的内容所示。

    我假设您的 %build 阶段正在将一个或多个文件放入目标 buildroot 区域,这是不应该的。它应该只在构建区域中。

    【讨论】:

      【解决方案2】:

      从所提供的 sn-ps 中可以清楚看出的唯一问题是 $HOME 没有在您的 rpmbuild 环境中定义。 $HOME/rpmbuild 是 RHEL6 中“rpmbuild”的默认构建根目录,而不是 RHEL5 中的 /usr/src/redhat。

      需要考虑的事项:

      • 是否有一个“~/.rpmmacros”文件正在改变 rpmbuild 指令。
      • 临时 %install 脚本不会在 错误退出。直接检查它可能会告诉你更多关于它失败的原因。

      例如:

      [user@host rpmbuild]$ rpmbuild -bb nano
      <snip>
      + exit 1
      error: Bad exit status from /var/tmp/rpm-tmp.2uw1tZ (%install)
      
      RPM build errors:
          Bad exit status from /var/tmp/rpm-tmp.2uw1tZ (%install)
      [user@host rpmbuild]$ cat /var/tmp/rpm-tmp.2uw1tZ
      #!/bin/sh
      
        RPM_SOURCE_DIR="/home/user/rpmbuild/SOURCES"
        RPM_BUILD_DIR="/home/user/rpmbuild/BUILD"
      ...
      

      【讨论】:

        猜你喜欢
        • 2011-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-25
        • 2013-06-14
        • 2019-03-27
        • 1970-01-01
        相关资源
        最近更新 更多