rpm エミュレーション - 複雑な rpm ビルド

rpm エミュレーション - 複雑な rpm ビルド

独自のOpenSSLを備えたApache Webサーバーを提供するRPMを作成したいとします。

/mydir/apache_postfix1
/mydir/openssl_postfix1

configure --prefix=/mydir/opensslmakeApache mod_sslには実際のOpenSSLインストールが必要なので、Apacheが実際にコンパイルできるようにOpenSSLをインストールする必要がありました。make install/mydir/opensslmod_sslconfigure --with-ssl=/mydir/openssl

これは、作業ディレクトリの外部に対する権限がないため、ビルドサーバー(Jenkins)では考えられないことです。ただし、OpenSSLを使用してApacheを構築し、それをRPMにパッケージ化する必要があります(それぞれ独自のOpenSSLを持つサフィックスを複数のApacheを提供する場合)。

だから私はこれがmock解決策だと思います(ユーザー/インストール権限を取得するよりもビルドサーバーにインストールする可能性が高いです)。

しかし、モックを使用してrpmbuildの完全な機能を使用する方法の完全なドキュメントを見つけることができませんでした。

試してみましたが失敗しているようmock -r epel-7-x68_64 example.src.rpmです/builddir/build/SPECS/example.spec。なぜですか?このファイルはどこからインポートされますか?

これは単なる例であり、実際の問題は、単一のサービスとして機能するように互いに構成/コンパイルする必要があり、Red Hat Satelliteを200を超えるサーバーに配信するために単一のRPMにパッケージ化する必要がある7つの個別のパッケージで構成されています。 ..実際にビルドサーバーにインストールせずに...

利用可能なドキュメント/サンプルに関するヘルプやリンクをお寄せいただきありがとうございます。

ベストアンサー1

最良のドキュメントソースは次のとおりです。シミュレーションソースコード、これ公式rpmドキュメント、これrpm パッケージングガイドそして推奨される追加文書。公開した例では、example.src.rpmシミュレーションを使用できるようにパッケージの正しい場所に適切な仕様ファイルがないようです。

シミュレーションはsrc.rpmファイルの入力として再構築するか、仕様ファイルとソースディレクトリを使用してソースrpm(SRPM)を構築できます。一部の追加設定では、ソースコードチェックアウトで直接モックオブジェクトを使用することもできます。偽装をインストールしてそれを使用するようにユーザーを構成した後は、(rootとして使用しようとすると偽装が苦情を示し、権限のないユーザーは偽装グループに存在する必要があります)、使用は非常に簡単です。

yumdownloader --source openssl
mkdir rpm-results
mock -r epel-7-x68_64 --resultdir=rpm-results openssl-*.src.rpm

これにより、OpenSSLを提供するディストリビューションが再構築され、結果のパッケージがrpm-resultsディレクトリに配置されます。ディストリビューションで提供されるパッケージを変更するには、src.rpmをインストールして変更し、結果のrpmファイルをビルドする必要があります。

yumdownloader --source openssl
rpm -ivh openssl-*.src.rpm
# usually this installs to ~/rpmbuild
# make your changes to ~/rpmbuild/SOURCES/* and ~/rpmbuild/SPEC/openssl.spec as necesary
mkdir rpm-results
mock -r epel-7-x68_64 --resultdir=rpm-results --buildsrpm ~/rpmbuild/SPEC/openssl.spec
mock -r epel-7-x68_64 --resultdir=rpm-results rpm-results/openssl-*.src.rpm

最新バージョンに2段階のビルド(SRPM => RPM)が必要ないかどうかはわかりませんが、これが私たちの店でモデルを使用する方法です。再構築したいパッケージごとに、この作業を希望するか実行する必要があります。私はあなたが要求するようにすべてを1つのパッケージにまとめることをお勧めしませんが、技術的にはそうすることを防ぐことはできません。独自の仕様ファイルを作成し、すべてを一緒に組み合わせるか、次のような他のツールを使用します。フルオロメチルメタクリレート

おすすめ記事