How to set the rpmbuild destination folder

后端 未结 5 884
孤街浪徒
孤街浪徒 2021-02-07 04:16

I noticed rpmbuild (-bb and --buildroot options) creates the .rpm in different locations depending of what OS are you using:

  • GNU/Linux Ubuntu <= 9.04: /usr/src/
相关标签:
5条回答
  • 2021-02-07 04:34

    Just a tiny comment.. adding "%define _rpmdir /outputdir" to spec file is also support by rpmbuild in AIX OS

    0 讨论(0)
  • 2021-02-07 04:34

    For me the solution was to set _topdir to a subdirectory called rpmbuild inside my project. I also set a few macros, to control the .rpm path:

    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
    

    Then I use make to generate the .rpm file and move it. I prefer rpmbuild to operate inside its directory.

    make rpm
    

    package.spec is using these macros, e.g.

    Name:           %{NAME_PACKAGE}
    
    0 讨论(0)
  • 2021-02-07 04:41

    Setting up the rpmbuild environment in /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

    Actually it is not recommended to use /usr/src/**. I.e. by using /home/[name]/rpms/ you can work as unprivileged user. No su or sudo is required to build packages.


    0 讨论(0)
  • 2021-02-07 04:43

    Replying myself, adding:

    %define _rpmdir /outputdir
    

    to .spec file.

    0 讨论(0)
  • 2021-02-07 04:50

    You may want to use the command argument --define : For example, this will send the rpm files into the current directory.

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

    This will send the rpmsto output dir

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

    Or perhaps something more complicated such as Custom gradle task for rpmbuild .

    0 讨论(0)
提交回复
热议问题