日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux制作openssl rpm,CentOS 7 定制 OpenSSL RPM 包

發布時間:2024/9/27 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux制作openssl rpm,CentOS 7 定制 OpenSSL RPM 包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、環境準備

1.1 安裝RPM打包、測試必備開發工具

$ yum install -y rpm-build rpmlint rpmdevtools

1.2 安裝打包、編譯所需的依賴軟件

$ yum install -y gcc gcc-c++ make perl perl-WWW-Curl

二、制作 OpenSSL 的 RPM 包

注意:

切記!不要使用 root 用戶來執行打包操作。因為這十分危險,所有二進制文件都會在打包前安裝至系統中,因此您應該以普通用戶身份打包,以防止系統被破壞。

2.1 配置 rpmbuild 工作目錄

$ mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

$ echo "%_topdir %{getenv:HOME}/rpmbuild" > ~/.rpmmacros

2.2 下載源碼包到 ~/rpmbuild/SOURCES 目錄

$ wget -O ~/rpmbuild/SOURCES/openssl-1.1.1k.tar.gz https://www.openssl.org/source/openssl-1.1.1k.tar.gz

2.3 編寫 openssl 1.1.1k 軟件庫包的spec文件

$ vim ~/rpmbuild/SPECS/openssl.spec

Name: openssl

Version: 1.1.1k

Release: 1%{?dist}

Summary: Utilities from the general purpose cryptography library with TLS implementation

Group: System Environment/Libraries

License: GPLv2+

URL: https://www.openssl.org/

Source0: https://www.openssl.org/source/%{name}-%{version}.tar.gz

BuildRequires: make gcc perl perl-WWW-Curl

Requires: %{name} = %{version}-%{release}

BuildRoot: %_topdir/BUILDROOT

%global openssldir /usr/openssl

%description

The OpenSSL toolkit provides support for secure communications between

machines. OpenSSL includes a certificate management tool and shared

libraries which provide various cryptographic algorithms and

protocols.

%prep

%setup -q

%build

./config --prefix=%{openssldir} --openssldir=%{openssldir}

make %{?_smp_mflags}

%install

[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}

%make_install

mkdir -p %{buildroot}%{_bindir}

mkdir -p %{buildroot}%{_libdir}

ln -sf %{openssldir}/lib/libssl.so.1.1 %{buildroot}%{_libdir}

ln -sf %{openssldir}/lib/libcrypto.so.1.1 %{buildroot}%{_libdir}

ln -sf %{openssldir}/bin/openssl %{buildroot}%{_bindir}

%clean

[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}

%files

%{openssldir}

%defattr(-,root,root)

%{_bindir}/openssl

%{_libdir}/libcrypto.so.1.1

%{_libdir}/libssl.so.1.1

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%changelog

* Sat May 08 2021 Hebin Wan - 1.1.1k

- Rebuilt for https://www.openssl.org/source/openssl-1.1.1k.tar.gz

2.4 使用 rpmlint 測試

為避免常見錯誤,請先使用 rpmlint 查找 SPEC 文件的錯誤:

$ rpmlint ~/rpmbuild/SPECS/openssl.spec

0 packages and 1 specfiles checked; 0 errors, 0 warnings.

如果返回錯誤/警告,使用 "-i" 選項查看更詳細的信息。

2.5 從 SPEC 構建 RPM 包

$ rpmbuild -D "version 1.1.1k" -ba ~/rpmbuild/SPECS/openssl.spec

-ba 構建源代碼rpm包和二進制rpm包

-bb 只構建二進制rpm包

-bs 只構建源代碼rpm包

-bp 執行至%prep階段(解壓源并應用補丁)

-bc 執行至%build階段(%prep,然后編譯)

-bi 執行至%install階段(%prep,%build,然后安裝)

-bl 驗證%files部分,查看文件是否存在

構建完成后,有類似下面的返回內容時,說明 RPM 包構建成功了

查看構建成功的 RPM 包$ tree ~/rpmbuild/*RPMS

在RPMS文件夾下生成了 RPM 包,在 x86_64 下,表示所應用的架構,由于沒有指定arch為 noarch ,所以默認用本機架構。在SRPMS文件夾下生成了源碼 RPM 包。

2.6 使用 rpmlint 測試已構建的 RPM 包

rpmlint 用于檢查 SPEC/RPM/SRPM 是否存在錯誤。你需要在發布軟件包之前,解決這些警告。此頁面 提供一些常見問題的解釋。

$ rpmlint ~/rpmbuild/SPECS/openssl.spec \

~/rpmbuild/RPMS/x86_64/openssl-1.1.1k-1.el7.x86_64.rpm \

~/rpmbuild/SRPMS/openssl-1.1.1k-1.el7.src.rpm

一般情況下,檢測到的都是一些WARN信息,不影響軟件使用,可以忽略。如果有ERROR信息,或許也不影響使用,但建議按照提示進行調整、修復。

三、安裝升級 OpenSSL

一般情況下,系統都已經有openssl了,所以我們直接升級即可。

注意:

切記!在做openssl升級時,請先從測試機中操作,升級后,確定沒有任何問題時,在根據線上環境陸續升級。

3.1 檢查系統當前OpenSSL版本

查看當前系統中openssl的版本

$ openssl version

OpenSSL 1.0.2k-fips 26 Jan 2017

卸載openssl

$ rpm -e openssl --nodeps

3.2 升級OpenSSL版本

安裝我們剛剛打包好的openssl 1.1.1k版本

$ rpm -ivh ~/rpmbuild/RPMS/x86_64/openssl-1.1.1k-2.el7.x86_64.rpm --nodeps

Preparing... ################################# [100%]

Updating / installing...

1:openssl-1.1.1k-2.el7 ################################# [100%]

再次查看系統中openssl版本

$ openssl version

OpenSSL 1.1.1k 25 Mar 2021

很幸運,成功升級!

但是否對系統環境、其他軟件功能有影響,這個就需要我們進一步測試,筆者這里就省略了。

參考文獻

總結

以上是生活随笔為你收集整理的linux制作openssl rpm,CentOS 7 定制 OpenSSL RPM 包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。