openssl-1.0.1j 製作RPM的spec文件

   因爲需要測試Nginx的spdy,需要升級openssl。可能會涉及後續的大規模升級計劃,所以將openssl製作成rpm包, 其中包括了對hifn so的管理..

    hifn so的管理就是:

       將so copy到/usr/lib,在/usr/lib創建最新的so鏈接文件.

       然後在通過/usr/lib的鏈接文件,引入到openssl的目錄內.

       以後so升級,就拷貝到/usr/lib,然後更新so鏈接文件就可以了..


    OpenSSL的spec文件內容.

#sinaopenssl-1.0.1j.specs
%define debug_package %{nil}
%define openssldir /usr/local/openssl-%{version}

Summary: RPM for openssl 
Name: sina-openssl 
Version: 1.0.1j
Release: 1
Vendor: Sina/guoliang9
License: Share
Group: Enterprise/Sina
AutoReqProv: 0
URL: http://www.sina.com.cn/
Source: sina-openssl-1.0.1j.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(%{__id_u} -n)
BuildArch: noarch
%description
在這臺設備上安裝%{name}-%{version}


%prep

%setup -q

%build
%define CONFIG_FLAGS --prefix=%{openssldir}

./config %{CONFIG_FLAGS} shared

LD_LIBRARY_PATH=`pwd` make
LD_LIBRARY_PATH=`pwd` make rehash

%install
rm -rf $RPM_BUILD_ROOT
make install INSTALL_PREFIX="$RPM_BUILD_ROOT"
install -D libeng_dx.so.1.1.0 %{buildroot}/%{openssldir}/lib/engines/

%post
#test -f /usr/lib/libeng_dx.so.1.1.0 || cp -f %{openssldir}/lib/engines/libeng_dx.so.1.1.0 /usr/lib/libeng_dx.so.1.1.0 
#test -L /usr/lib/libeng_dx.so || ln -sf  /usr/lib/libeng_dx.so.1.1.0 /usr/lib/libeng_dx.so
#ln -sf /usr/lib/libeng_dx.so %{openssldir}/lib/engines 
ldconfig

%clean
rm -rf $RPM_BUILD_ROOT

%preun
#rm -f %{openssldir}/lib/engines/libeng_dx.so

%postun
ldconfig

%files
%defattr(-,root,root,0755)
%{openssldir}


%changelog



    Nginx的啓動文件主要變更內容爲..

#!/bin/sh
# chkconfig: - 85 15 
# description: this sina nginx
# processname: nginx
# config: /usr/local/{nginx}/conf/nginx.conf
# pidfile: /usr/local/{nginx}/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

# define OpenSSL version path
if [ -d "/usr/local/openssl-1.0.1j/lib" ];then
  OPENSSLDIR="/usr/local/openssl-1.0.1j/lib"
elif [ -d "/usr/local/openssl-1.0.0m/lib" ];then
  OPENSSLDIR="/usr/local/openssl-1.0.0m/lib"
fi 

if [ ! -z $OPENSSLDIR ];then
        nginx="/bin/env LD_LIBRARY_PATH=$OPENSSLDIR  /usr/local/$CONFDIR/sbin/nginx"
else
        nginx="/usr/local/$CONFDIR/sbin/nginx"
fi


後續內容就基本都差不多了。巴拉巴拉。。。



    剩下的OpenSSL升級操作只需要..

yum install sina-openssl -y && /etc/init.d/nginx restart


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章