tarballではなくソースディレクトリを使用してRPMをビルドします


13

私の組織では、RPMを使用してすべてのソフトウェアを運用マシンに展開しています。(自動化された)ビルドプロセスでは、バージョン管理からソースをチェックアウトし、そのソースディレクトリをtarし、そのソースtarballを使用してrpmbuildを実行します。rpmbuildは、そのtarballを使用してソースを展開し、それらを操作します。したがって、風袋引きと風袋引きのビジネス全体は、ビルドプロセスの不要な追加ステップに過ぎないようです。specファイルでソースディレクトリを指定するだけで、これらの余分な手順を回避する方法はありましたか?

回答:


5

はい、できます。Sourcesをリストしないでください。この%prepセクションでは、%setupマクロを使用しないでください(ソースを展開します)。むしろ、ソースをチェックアウトするだけです。

これを行うと、SRPMを構築できないことに注意してください。


これはそれを行います。ビルド手順を変更して、代わりにrpm BUILDディレクトリにチェックアウトするだけです。ありがとう!
エディ

10

この質問は少し古いですが、他の人が検索で見つけた場合、SRPMの作成を許可するより正確な方法があります。

prepセクションでは、セットアップマクロを使用する代わりに、アーカイブを展開するのではなく、ソースディレクトリからBUILDにソースディレクトリをコピーするだけで、自分がやりたいことを入力する必要があります。ビルドセクションとインストールセクションのソースディレクトリにcdを追加する必要があることもわかりました。

サンプルスニペット

%prep
# Don't use the setup macro anymore, replace it with typed-out commands
#%setup -q -n myapp-%{version}
cd %{_topdir}/BUILD
rm -rf myapp-%{version}
cp -rf %{_topdir}/SOURCES/myapp-%{version} .
cd myapp-%{version}
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .

%patch1 -p1 -b .cert-config
%patch2

%build
cd myapp-%{version}

%install
cd myapp-%{version}

なければならない%{_topdir}/SOURCESこと%{_sourcedir}?そして%{_topdir}/BUILDかもしれない%{buildroot}?(余談ですが、あなたはから抽出されたものを上書きするため、余分なファイルを追加しようとしている別の類似した-しかし、状況については%setup、Fedoraのドキュメントは、使用することをお勧めします%{SOURCE2}-などfedoraproject.org/wiki/Packaging:RPM_Source_Dir
IBBoard
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.