【问题标题】:How to set the rpmbuild destination folder如何设置 rpmbuild 目标文件夹
【发布时间】:2011-02-16 04:34:27
【问题描述】:

我注意到 rpmbuild(-bb 和 --buildroot 选项)根据您使用的操作系统在不同的位置创建 .rpm:

  • GNU/Linux Ubuntu
  • GNU/Linux Ubuntu >= 9.10:/home/rpmbuild/...
  • GNU/Linux Fedora:/usr/src/redhat/...

那么如何手动设置所有操作系统的目标文件夹?

【问题讨论】:

标签: redhat rpm rpmbuild


【解决方案1】:

回复我自己,补充:

%define _rpmdir /outputdir

到 .spec 文件。

【讨论】:

    【解决方案2】:

    您可能希望使用命令参数--define:例如,这会将 rpm 文件发送到当前目录。

    rpmbuild anything.spec --bb --define "_rpmdir $(pwd)"
    

    这将发送 rpmsto 输出目录

    rpmbuild anything.spec --bb --define "_rpmdir /outputdir"
    

    或者可能是更复杂的东西,例如Custom gradle task for rpmbuild

    【讨论】:

      【解决方案3】:

      在 /home/ http://www.linuxquestions.org/questions/linux-software-2/need-rpm-package-for-php-version-5-2-7-and-up-on-redhat-5-1-a-766486/#13 中设置 rpmbuild 环境

      其实不推荐使用/usr/src/**。 IE。通过使用 /home/[name]/rpms/ 您可以作为非特权用户工作。构建包不需要 su 或 sudo。


      【讨论】:

        【解决方案4】:

        只是一个小小的评论.. AIX OS 中的 rpmbuild 也支持向 spec 文件添加“%define _rpmdir /outputdir”

        【讨论】:

          【解决方案5】:

          对我来说,解决方案是将 _topdir 设置为我的项目中名为 rpmbuild 的子目录。我还设置了一些宏来控制 .rpm 路径:

          rpm:
          rpmbuild -bb package.spec -D "_topdir $(shell pwd)/rpmbuild"  -D "SRC $(shell pwd)" -D "NAME $(NAME)" -D "ARCH $(ARCH)" -D "VERSION $(VERSION)" -D "RELEASE $(RELEASE)"
          mv rpmbuild/RPMS/$(ARCH)/$(NAME)-$(VERSION)-$(RELEASE).$(ARCH).rpm ./
          rm -rf rpmbuild
          

          然后我使用 ma​​ke 生成 .rpm 文件并移动它。我更喜欢 rpmbuild 在其目录内操作。

          make rpm
          

          package.spec 正在使用这些宏,例如

          Name:           %{NAME_PACKAGE}
          

          【讨论】:

          • 我也使用选项--build-in-place
          猜你喜欢
          • 2017-08-27
          • 2016-02-07
          • 1970-01-01
          • 2013-02-05
          • 1970-01-01
          • 2022-09-29
          • 2014-05-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多