Centos7 编译RPM包安装openssl 1.1.1q
source link: https://blog.51cto.com/u_15131458/5507591
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Centos7 编译RPM包安装openssl 1.1.1q
原创Centos7虽然在2023年就要停止维护了,但是在现有的业务服务系统中还是存在非常大的计基数,并且现在Centos7的官方提供的升级包只提供1.0.2k,显然这个版本现在存在非常多的安全问题,为了让升级变的简单容易操作,并且不受限gcc编译环境。以最新的openssl 1.1.1q版本为例,后续再测3.0版本。
1、从官网下载源码包
官方提供的最新版的源码包是2022年7月5日的。下载链接如下:
https://www.openssl.org/source/openssl-1.1.1q.tar.gz
2、准备编译rpm环境
1、准备工作目录。进入家目录,创建工作目录(这里我以普通具有sudo权限用户为例)
mkdir -p rpmbuild/{SOURCES,RPMS,SPECS,BUILD,BUILDROOT,SRPMS}
2、安装需要用到的软件包(提前准备好epel源)
sudo yum install -y gcc make perl rpm-build rpmlint perl-WWW-Curl
3、将SPEC文件放到SPECS目录中
下面是一个示例,可以供参考
Summary: OpenSSL 1.1.1q for Centos
Name: openssl
Version: %{?version}%{!?version:1.1.1q}
Release: 25%{?dist}
Obsoletes: %{name} <= %{version}
Provides: %{name} = %{version}
URL: https://www.openssl.org/
License: GPLv2+
Source: https://www.openssl.org/source/%{name}-%{version}.tar.gz
BuildRequires: make gcc perl perl-WWW-Curl
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
%global openssldir /usr/openssl
%description
OpenSSL RPM for version 1.1.1q on Centos
%package devel
Summary: Development files for programs which will use the openssl library
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
OpenSSL RPM for version 1.1.1q on Centos (development package)
%prep
%setup -q
%build
./config --prefix=%{openssldir} --openssldir=%{openssldir} -fPIC
make
%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)
/usr/bin/openssl
/usr/lib64/libcrypto.so.1.1
/usr/lib64/libssl.so.1.1
%files devel
%{openssldir}/include/*
%defattr(-,root,root)
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%changelog
* Fri Jul 22 2022 Ting - 1.1.1q
- Rebuilt for https://www.openssl.org/source/openssl-1.1.1q.tar.gz
4 将源码包上传到SOURCES目录中
5 在用家目录中执行制作rpm命令
rpmbuild -ba rpmbuild/SPECS/openssl.spec
在过了一段时间,并且没有报错的情况下就如下图的样子。
在RPMS的目录也有对应RPM包
6 客户上安装
因为openssl 作为一个基础组件会存在多种依赖,所以需要强制卸载后再强制安装。
到此就完成了升级。
openssl 作为基础组件对于系统的路径等信息可以在spec文件中调整,以适合自己的期望。
- 打赏
- 赞
- 收藏
- 评论
- 分享
- 举报
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK