내 프로그램에 동적으로 연결하려면 sles11 sp3을 실행하는 서버에서 OPENSSL을 0.9.8j-0.50.1 -> 1.0.2a로 업그레이드해야 합니다.
내 빌드 환경(sles11sp3)을 업그레이드하는 단계는 다음과 같습니다.
1. 공식 홈페이지에서 설치 패키지를 다운로드하세요.https://www.openssl.org/source/그리고 아래와 같이
가) wgethttps://www.openssl.org/source/openssl-1.0.2a.tar.gz b)./config -fPIC 공유 --prefix=/usr --openssldir=/etc/ssl c)make d) make install INSTALL_PREFIX=/home/Release/openssl/ e)cd /home/Release/openssl/ d) ls -lf)cp -rf */
2. 이제 openssl 버전을 실행하면 다음과 같이 표시됩니다(예상).
OpenSSL> version
OpenSSL 1.0.2a 19 Mar 2015
OpenSSL>
3. 내 프로그램을(SNMP 및 CURL을 사용하여) 컴파일한 후 아래 두 가지 컴파일 경고가 표시되었습니다.
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: 경고: libcrypto.so.0.9.8, /usr 필요 /lib64/libnetsnmpagent.so는 libcrypto.so.1.0.0과 충돌할 수 있습니다.
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: warning: libssl.so.0.9.8, needed by /usr/lib64/libcurl.so, may conflict with libssl.so.1.0.0
4. 따라서 이 경고를 해결하려면 아래와 같이 /usr/lib64 디렉토리에 다음 심볼릭 링크를 생성하십시오.
cd /usr/lib64 ln -sf libssl.so.1.0.0 libssl.so.0.9.8 ln -sf libcrypto.so.1.0.0 libcrypto.so.0.9.8
5. 이제 컴파일 경고가 표시되지 않으며 빌드 rpm도 생성됩니다(myprogram.rpm).
6. 동일한 sles11 sp3에서 실행 중인 엔터프라이즈 서버(여기서는 프로그램을 실행하면 됨)에서 동일한 단계(3번 제외)를 수행했습니다.
rpm -ivh myprogram.rpm
error:Failed dependencies:
libcrypto.so.1.0.0()(64bit) is needed by myprogram
libssl.so.1.0.0()(64bit) is needed by myprogram
내가 잘못하고 있거나 누락된 부분을 제안해 주세요.