src.rpmで-DPURIFYを使用してOpenSSLをコンパイルする方法

src.rpmで-DPURIFYを使用してOpenSSLをコンパイルする方法

ValgrindでOpenSSLを使用してプログラムを実行しようとしていますが、OpenSSLが多くの「誤検出」を引き起こす興味深い作業を実行しているため、いくつかの検索後に-DPURIFYオプションを使用してOpenSSLをコンパイルする必要があることに気付きました。

そのため、RedHatサーバーから現在のシステム(旧システム)と同じOpenSSLバージョン(openssl-1.0.0-10.el6.src.rpm)をダウンロードしました。次に、次のコマンドを試してください。

rpm2cpio openssl-1.0.0-10.el6.src.rpm | cpio -idmv
tar -xvf openssl-1.0.0-usa.tar.bz2
cd openssl-1.0.0
./config
make

しかしブランドはerror: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token

src.rpmファイルを抽出すると、多くのパッチファイルが表示され、これらのファイルを手動で適用する必要があると思います(どのように、どのような順序で?)。それとも私が何か間違っているのでしょうか?

目的:-DPURIFYを使用してOpenSSLのこのバージョン(1.0.0-10.el6)をコンパイルします。

ベストアンサー1

通常、変更が必要なときにシステムに解釈されていないファイル/バイナリがないように、独自のパッケージを作成してインストールすることをお勧めします。

通常、src.rpmソースパッケージからパッケージを(再)ビルドするための特定の手順があります。

プロセスはほとんど自動化されているため、すべてのパッチを手動でコンパイルまたは適用する必要はありません。

~からCentOS - ソースRPMの再構築

まず、SRPMを解凍してrpmbuild -baを使用して仕様ファイルから再構築することの利点は、必要に応じて仕様ファイルを変更できることです(一部のパッチを追加したり、ソースtarballをアップグレードすることもできます)。これは単にSRPMを再構築するよりも複雑な状況です。このパスをたどるには、以下の説明に従ってそのトピックについてさらに読む必要がありますが、プロセスは次のとおりです。

CD ~/rpmbuild/仕様/

rpmbuild -bp mypackage.spec

CD ~/rpmbuild/BUILD/

cp 既存のディレクトリ 既存のディレクトリ.orig

CD 既存ディレクトリ

編集したいファイルを見つけて編集します。

CD ~/rpmbuild/BUILD/

diff -Npru 既存ディレクトリ.orig 既存ディレクトリ > パッチファイル名.patch

cp name_of_your_patch_file.patch ~/rpmbuild/SOURCES/

CD ~/rpmbuild/仕様/

mypackage.specファイルを編集して、name_of_your_patch_file.patch定義とyour_patch_fileアプリケーションを追加します。これがどのように行われるかを確認するには、ファイルを見てください。

rpmbuild -ba mypackage.spec

最後に、変更を含むパッケージをインストールします。

rpm -i mypackage

OPのコメントによれば、すでにパッケージがインストールされている場合は、以下を使用してバージョンにアップグレードできます。

rpm -Uvh --force mypackage

おすすめ記事