openssl - 1.0.1j RPM 의 spec 파일 만 들 기

2702 단어 linuxrpmLinux
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

좋은 웹페이지 즐겨찾기