Building OpenSSL RPM Package Tutorial
安装依赖和工具
bashyum groupinstall -y 'Development Tools'
yum install -y rpm-build rpmlint rpmdevtools gcc gcc-c++ make perl perl-WWW-Curl
生成打包目录
bashrpmdev-setuptree
下载源码包
bashwget --no-check-certificate https://www.openssl.org/source/openssl-3.3.1.tar.gz
拷贝源码包到相应目录
bashmv openssl-3.3.1.tar.gz /root/rpmbuild/SOURCES/
创建openssl.spec文件
cat << EOF > /root/rpmbuild/SPECS/openssl.spec Summary: OpenSSL 3.3.1 Name: openssl Version: %{?version}%{!?version:3.3.1} 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.gz BuildRequires: make gcc perl perl-WWW-Curl BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %global openssldir /usr/openssl %description OpenSSL RPM for version 3.3.1 %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 3.3.1 (development package) %prep %setup -q %build ./config --prefix=%{openssldir} --openssldir=%{openssldir} make %install [ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot} %make_install mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_libdir} ln -sf %{openssldir}/lib64/libssl.so.3 %{buildroot}%{_libdir} ln -sf %{openssldir}/lib64/libcrypto.so.3 %{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.3 /usr/lib64/libssl.so.3 %files devel %{openssldir}/include/* %defattr(-,root,root) %post -p /sbin/ldconfig %postun -p /sbin/ldconfig EOF
构建RPM
bashrpmbuild -bb --nodebuginfo /root/rpmbuild/SPECS/openssl.spec
安装openssl-3.3.1-1.el8.bclinux.x86_64.rpm
bashyum -y remove openssl rpm -ivh /root/rpmbuild/RPMS/x86_64/openssl-3.3.1-1.el8.bclinux.x86_64.rpm --nodeps openssl version
SPEC文件说明: