6

Centos7 编译RPM包安装openssl 1.1.1q

 2 years ago
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.
neoserver,ios ssh client

Centos7 编译RPM包安装openssl 1.1.1q

原创

Happy_Future 2022-07-23 17:47:03 ©著作权

文章标签 centos perl 源码包 文章分类 Linux 系统/运维 阅读数204

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

Centos7 编译RPM包安装openssl 1.1.1q_源码包

2、准备编译rpm环境

1、准备工作目录。进入家目录,创建工作目录(这里我以普通具有sudo权限用户为例)

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

Centos7 编译RPM包安装openssl 1.1.1q_perl_02

2、安装需要用到的软件包(提前准备好epel源)

 sudo yum install -y gcc make perl rpm-build rpmlint perl-WWW-Curl

3、将SPEC文件放到SPECS目录中

下面是一个示例,可以供参考
Centos7 编译RPM包安装openssl 1.1.1q_perl_03

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目录中

Centos7 编译RPM包安装openssl 1.1.1q_centos_04

5 在用家目录中执行制作rpm命令

rpmbuild -ba rpmbuild/SPECS/openssl.spec

在过了一段时间,并且没有报错的情况下就如下图的样子。

Centos7 编译RPM包安装openssl 1.1.1q_perl_05

在RPMS的目录也有对应RPM包

Centos7 编译RPM包安装openssl 1.1.1q_perl_06

6 客户上安装

因为openssl 作为一个基础组件会存在多种依赖,所以需要强制卸载后再强制安装。

Centos7 编译RPM包安装openssl 1.1.1q_源码包_07

到此就完成了升级。

openssl 作为基础组件对于系统的路径等信息可以在spec文件中调整,以适合自己的期望。

  • 打赏
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK