当前位置: 首页 > news >正文

RHEL7.5编译openssl1.1.1w源码包到rpm包

openssl1.1.1w下载地址

https://www.openssl.org/source/

安装依赖包

yum -y install curl  which  make gcc perl  perl-WWW-Curl  rpm-build

wget http://mirrors.aliyun.com/centos-vault/7.5.1804/os/x86_64/Packages/perl-WWW-Curl-4.15-13.el7.x86_64.rpm
rpm -ivh perl-WWW-Curl-4.15-13.el7.x86_64.rpm

创建编译时需要的目录

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

上传源码包到指定目录

cp openssl-1.1.1w.tar.gz /root/rpmbuild/SOURCES/

新建编译文件

cat << 'EOF' > /root/rpmbuild/SPECS/openssl.spec
Summary: OpenSSL 1.1.1w for redhat
Name: openssl
Version: %{?version}%{!?version:1.1.1w}
Release: 1%{?dist}
Obsoletes: %{name} <= %{version}
Provides: %{name} = %{version}
URL: https://www.openssl.org/
License: GPLv2+Source: https://www.openssl.org/source/%{name}-%{version}.tar.gzBuildRequires: make gcc perl perl-WWW-Curl
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
%global openssldir /usr/local/openssl1.1.1w%description
OpenSSL RPM for version 1.1.1w on redhat%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.1w on redhat (development package)%prep
%setup -q%build
./config --prefix=%{openssldir} --openssldir=%{openssldir}
make -j4%install
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}
%make_installmkdir -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
EOF

注意里面的

%global openssldir /usr/local/openssl1.1.1w

这个是编译安装的rpm的默认安装地址,这个可以自定义,但是要跟后续的openssh的编译安装的时候的configure命令对应。

执行编译rpm包命令

cd /root/rpmbuild/SPECS && \
    rpmbuild \
    -D "version 1.1.1w" \
    -ba openssl.spec

查看生成的openssl的rpm包

执行升级openssl的操作

cd /root/rpmbuild/RPMS/x86_64/
rpm -ivh  openssl-1.1.1w-1.el7.x86_64.rpm openssl-devel-1.1.1w-1.el7.x86_64.rpm --force --nodeps

这个安装完后会新增openssl-1.1.1w的版本,但是原来老的版本的openssl还是在。

卸载老版本的openssl

rpm -e openssl-1.0.2k-12.el7.x86_64 openssl-devel-1.0.2k-12.el7.x86_64 --nodeps

检查

# rpm -qa | grep openssl

http://www.lryc.cn/news/262193.html

相关文章:

  • 结构型设计模式(二)装饰器模式 适配器模式
  • C#数据结构
  • 代码随想Day39 | 62.不同路径、63. 不同路径 II
  • Autosar通信实战系列07-Com模块要点及其配置介绍(二)
  • DSP捕获输入简单笔记
  • 【Java基础】HashMap 原理
  • vue3的大致使用
  • 什么是计算机网络?计算机网络基础知识
  • 【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?
  • RealBasicVSR高清处理视频
  • 晚期食管癌肿瘤治疗线程分类
  • 高效营销系统集成:百度营销的API无代码解决方案,提升电商与广告效率
  • 网络基础(十一):VRRP原理与配置
  • 设计模式——状态模式
  • 2020-XNUCA babyv8
  • 货物数据处理pandas版
  • MC-30A (32.768 kHz用于汽车应用的晶体单元)
  • TrustZone之其他设备及可信基础系统架构
  • 自由编程学习资源:free-programming-books
  • 饥荒Mod 开发(十三):木牌传送
  • Qt/C++音视频开发60-坐标拾取/按下鼠标获取矩形区域/转换到视频源真实坐标
  • Java实现订单超时未支付自动取消的8种方法总结
  • android动态权限申请并展示权限使用说明
  • 论文阅读《DPS-Net: Deep Polarimetric Stereo Depth Estimation》
  • docker文档转译1
  • UE4 图片环形轮播 蓝图
  • 饥荒Mod 开发(十):制作一把AOE武器
  • 微服务实战系列之ZooKeeper(下)
  • FFmpeg项目的组成
  • 计算机网络:数据链路层(广域网、PPP协议、HDLC协议)