
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ソースパッケージからパッケージを(再)ビルドするための特定の手順があります。
プロセスはほとんど自動化されているため、すべてのパッチを手動でコンパイルまたは適用する必要はありません。
まず、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