2016-09-14 16 views
0

RPMパッケージを作成するのは嫌です。rpmパッケージのセクションをインストール

私は、コマンド以下の意味を知りたい:%installセクションで

BuildRoot: %{_tmppath}/build-%{name}-%{version} 

     %install 
     rm -rf "%{buildroot}" 
     install -m 0755 -d "%{buildroot}%{_prefix}" 
     %__install -D -m0644 "%{SOURCE0}" "%{buildroot}%{_prefix}/ROOT.war" 

%files 
%dir %{_prefix} 
%{_prefix}/ROOT.war 

答えて

1

、あなたが%{buildroot]ディレクトリ内のすべてのファイルをインストールすることになっています。それらが最終システムにインストールされる方法だけです。

rm -rf "%{buildroot}" 

彼はこのディレクトリを消去します。私はこれを決して使用しません。私のビルドルートは私のパッケージごとにユニークですから。

install -m 0755 -d "%{buildroot}%{_prefix}" 

%{_prefix}変数が宣言されているように思われる(私のspecファイルの先頭にBuildRoot: %{_tmppath}/%{name}-%{version}-buildを使用)。彼はそのディレクトリを作成するだけです。おそらく%{_prefix}%filesセクションで再利用されます。ここ

%__install -D -m0644 "%{SOURCE0}" "%{buildroot}%{_prefix}/ROOT.war" 

ファイル%{SOURCE0}%{buildroot}%{_prefix}ディレクトリに(コピー)がインストールされています。 ROOT.warファイルがその回転数にパッケージされることを意味し

%files 
%{_prefix}/ROOT.war 

:だから%ファイルのセクションで私はこのような行を期待します。

-D
DESTのすべての主要なコンポーネントを作成します。 %__install -Dコマンドはちょうど/usr/bin/install -Dに展開

EDIT(defined macrosを参照)

-Dオプションは、インストールマニュアルページで説明されています最後を除き、コピー元をDESTにコピー

+0

ありがとう!しかし、この%__ install -Dは何をしていますか? – devops

関連する問題