2011-08-15 2 views
1

いくつかの異なるVM(CentOS5 32 & 64、CentOS6 32 012 & 64、Fedoraなど)上にパッケージを構築しています。そして得られたRPMファイルは、のように、name.version.release.arch.rpmが含まれていますスペックファイルにOSを追加すると、結果のRPMにOSとアーチが含まれていますか?

foo-1.1-1.i386.rpm 

しかし、その代わりに、私は出力にそれを望むよう:

foo-1.1-1.el5.i386.rpm 

(中specファイル?.rpmmacros?)とどのように私はそれを行うのですか?

ありがとうございます。 Releaseタグで

答えて

3

これ:

Release: 1%{?dist} 

これは、例えばする置換されていますel6 RHEL6などです。少なくとも、Oracle Linux 6.5では、「@Development tools」とrpmdevtoolsがインストールされています。

1

Release: 1.el5 

多くの場合、人々は、カスタム定義を作成し、その次のとおりです。次に

%define OSshort el5 
Release: 1%{?OSshort} 

を、あなたはまた、どのようなOSあなたに基づいてOSshortを定義するためのロジックを使用することができます再構築している。

更新:Releaseタグが定義されている場合にのみOSshortを使用するように変更しました。その後、あなたはそれがspecファイルで未定義のままにし、OS /ディストリビューションをテストして、自動的にそれはそれは少し複雑だ構文解析を必要とする生成するロジックを記述するビルドコマンド

$ rpmbuild -bb --define 'OSshort _el5' 

中にそれを定義し、私は見つけることができないことができます今の例。 .specファイル使用で

+0

ありがとうございます - 私は非常にrpmbuildを新しくしました。 OSタグを生成するために使用できるロジックのタイプについてもう少し詳しく説明できますか?理想的には、私はすべてのシステムで同一のスペックファイルを使い、スペックファイルを他の人と共有できるようにして、 "うまくいく"ようにしたいと考えています。 – SteveJ

+0

それは素晴らしい作品です。どうも。 :) – SteveJ

+0

私の答えは何も定義せずに動作します。スティーブ、私の答えを解決策としてマークすることを検討してください。 –

関連する問題