2016-07-04 9 views
0

どこでも私はインターネットで見ましたが、rpmbuildのデフォルトの場所はユーザのホームディレクトリ、~/rpmbuildです。 ~/foo/bar/rpmbuildのような別のフォルダの場所にビルドしたい場合はどうすればいいですか?RPMビルドは常に〜/ rpmbuildからファイルを取得しますか?

これはなぜですか?私のビルドの場所が何か他のものであれば、それはどのような違いがありますか?

編集:これは、~/rpmmacrosファイルであってもどこにでもある可能性があることを意味します。

+0

を参照してください。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 -bb file.specを使用することができます。パッケージは.rpmmacrosで指定されたフォルダに作成されます。 –

+0

私は理解しています。私は、〜/ .rpmmacrosファイルを別の場所に移動してそこからrpmbuildを取得しても、私が意図したことを推測しましたか?方法はありませんか?それともこの設定は関係ないのですか? –

答えて

2

rpmbuildコマンドラインで_topdirを指定すると、.rpmmacrosファイルを変更または保守することなく、rpmsを構築できます。例えば、

rpmbuild --define '_topdir $(RPMBUILD_DIR)' \ 
    --define 'version $(VERSION)' \ 
    --define 'release $(RELEASE)' \ 
    -bb $(PKGNAME).spec 

は、指定されたバージョンの$ {} RPMBUILD_DIRの下で私のRPMを構築し、変数から数字を解放するために回転数のプロジェクトのための私のMakefileの一つです。私はこれをたくさん使って、同じディレクトリにビルドしようとすると互いに競合しない複数のrpmビルドプロジェクトを持つことができます。

1

あなたは、このように(自分のホームディレクトリにある).rpmmacros設定ファイルに%_topdir変数を設定することができます。

echo "%_topdir ~/foo/bar/rpmbuild" >> ~/.rpmmacros 

それは(いけない)本当に多くの違いをすることはないだろう。ソースはrpmbuildでそこにコピーされるからです。それらはビルドされ、インストールされ、パッケージ化されています...すべてのパスが相対的であると考えられるので、結果は同じでなければなりません。

PS:rpm build areaの詳細 PPS:以前のデフォルトのbuild areaは/ usr/src/packagesにありました。しかし、許可の問題などがありました。

+0

私は以前は分かりませんでした。質問の下の私のコメントを参照してください。 –

+0

rpm --macros/colon:/ separated:pathsは、マクロファイルの読み込みを再配置する方法の1つです。また、rpmrcファイル内でマクロパスを上書きする古くからの方法があります。これはrpm.orgコードでも機能します(rpm5.orgはあまりにも複雑な構成の手段としてrpmrcファイルをほとんど捨てています)。 –

関連する問題