因爲需要測試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