2011-10-05 23 views
1

그래서 SSL ergo Apache Openssl 및 SSLeay를 사용하여 Apache를 설치하려고합니다. 나는 Apache2와 함께 끝났으며 Openssl은 내가 SSLeay를 설치하는데 어려움을 겪고 있음을 안다. 나는 모든 명령이 실패한 후에 perl Makefile.PL까지 얻는다. 즉 내가 this question, that is simmilar 보았고하려면 openssl-(STABLE)이 필요하다는 것을 발견 이후에 설치하려면 openssl-(STABLE)을 가진 하나이기 때문에 리눅스에서 Crypt :: SSLeay를 설치하는 중 오류가 발생했습니다.

perl Makefile.PL  
Found multiple possibilities for OpenSSL 
     /opt/ssl (OpenSSL 0.9.8r) 
     /usr (OpenSSL 0.9.8p) 
    Which SSL install path do you want to use? [/opt/ssl] 

build information 

================================================ 

ssl library: OpenSSL 0.9.8r in /opt/ssl 
ssl header: openssl/ssl.h 
libraries: -L/opt/ssl/lib -lssl -lcrypto -lgcc 
include dir: -I/opt/ssl/include 

================================================ 

Note (probably harmless): No library found for -lgcc 
Writing Makefile for Crypt::SSLeay 
The test suite can attempt to connect to public servers 
to ensure that the code is working properly. If you are 
behind a strict firewall or have no network connectivity, 
these tests may fail (through no fault of the code). 
Do you want to run the live tests (y/N)? [N] 

는 I은/usr 설치를 선택합니다. 그래서,하려면 openssl-(STABLE)

rpm -qi openssl 
Name  : openssl      Relocations: (not relocatable) 
Version  : 0.9.8a       Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany 
Release  : 18.36       Build Date: Mon 27 Jul 2009 03:55:03 PM CEST 
Install Date: Mon 18 Jan 2010 10:42:42 AM CET  Build Host: deacon.suse.de 
Group  : Productivity/Networking/Security Source RPM: openssl-0.9.8a-18.36.src.rpm 
Size  : 2998754       License: BSD 3-Clause 
Signature : DSA/SHA1, Mon 27 Jul 2009 03:57:14 PM CEST, Key ID a84edae89c800aca 
Packager : http://bugs.opensuse.org 
URL   : http://www.openssl.org/ 
Summary  : Secure Sockets and Transport Layer Security 


rpm -qi openssl-devel 
Name  : openssl-devel    Relocations: (not relocatable) 
Version  : 0.9.8p       Vendor: PLD 
Release  : 1        Build Date: Fri 19 Nov 2010 12:24:41 PM CET 

Install Date: Wed 05 Oct 2011 03:47:56 PM CEST  Build Host: x86-64.titanium.pld-linux.org 
Group  : Development/Libraries   Source RPM: openssl-0.9.8p-1.src.rpm 
Size  : 2003899       License: Apache-like 
Signature : (none) 
Packager : PLD 
URL   : http://www.openssl.org/ 
Summary  : Development part of OpenSSL Toolkit libraries 
Description :<br/> 
Development part of OpenSSL library. 
Distribution: PLD Titanium 

를 설치하지만 make

make 
cc -c -I/opt/ssl/include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe -DVERSION=\"0.58\" -DXS_VERSION=\"0.58\" -fPIC "-I/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE" SSLeay.c 
SSLeay.c: In function âXS_Crypt__SSLeay__CTX_newâ: 
SSLeay.c:118: warning: unused variable âpacknameâ 
SSLeay.c: In function âXS_Crypt__SSLeay__Conn_newâ: 
SSLeay.c:395: warning: unused variable âpacknameâ 
SSLeay.c: In function âXS_Crypt__SSLeay__CTX_use_pkcs12_fileâ: 
SSLeay.c:287: warning: âRETVALâ may be used uninitialized in this function 
Running Mkbootstrap for Crypt::SSLeay() 
chmod 644 SSLeay.bs 
rm -f blib/arch/auto/Crypt/SSLeay/SSLeay.so 
cc -shared -L/usr/local/lib64 SSLeay.o -o blib/arch/auto/Crypt/SSLeay/SSLeay.so  \ 
    -L/opt/ssl/lib -lssl -lcrypto   

/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/bin/ld: /opt/ssl/lib/libssl.a(s2_clnt.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC 
/opt/ssl/lib/libssl.a: could not read symbols: Bad value 
collect2: ld returned 1 exit status 
make: *** [blib/arch/auto/Crypt/SSLeay/SSLeay.so] Error 1 

나는 이유에는 OpenSSL-(STABLE) 라이브러리를 찾을하지 않는 펄이라고 생각을 실행할 때 난 여전히 다음과 같은 오류가 알고 그렇다면 어떻게 링크 시켜서 찾을 수 있습니까? 당신이 일반적으로 undefined symbol 오류가 라이브러리를 찾을 수없는 경우

+0

'Crypt :: SSLeay'로 해결해야 할 많은 것들이 있습니다. 다시 한 번'Makefile.PL' 파일이 그 중 하나입니다. 요즈음 나는 그것으로 돌아갈 것이다. 그 동안 배포본에 패키지가 제공되면 미리 패키지화 된 버전을 사용하십시오. –

답변

0

Almightybob 사전에

감사합니다. 이것은 라이브러리를 찾은 것처럼 보이지만 그것을 좋아하지 않습니다. 32 비트 openssl을 64 비트 펄이나 역으로 사용할 가능성이 있습니까?

2

배포판에 사전 빌드 된 버전을 사용하지 않는 이유는 무엇입니까?

$ sudo yum install perl-Crypt-SSLeay 

(또는 가까운 상당)

+0

은 'yast'에서도 가능합니다. 나는 yum을 설치하는 데 시간을 들이고 싶지 않습니다. – almightyBob

0

당신은 소프트웨어의 조각에 대한 혼란이다.

openSUSE 및 관련 배포판에서는 간단히 sudo zypper install apache2입니다. Apache httpd v2에는 이미 mod_ssl이라는 OpenSSL에 대한 바인딩이 포함되어 있습니다. 이 명령은 에 대한 모든 필수 종속성을 OpenSSL 라이브러리를 포함하여 SSL을 통한 콘텐츠에 자동으로 설치합니다. 아무것도 컴파일 할 필요가 없습니다.

SSLeay는 Perl HTTP 클라이언트 스택의 일부입니다. SSL을 통해 원격 서버의 다른 사람의 콘텐츠에 액세스하는 것이 좋습니다. 이것은 당신이 원하는 것과는 정반대이지만 원하는 경우 먼저 add the repositorydevel:language:perl을 입력 한 다음 perl-LWP-Protocol-https 패키지를 설치하십시오. 다시 말하지만, 이것은 자동으로 perl-Net-SSLeay을 포함하여 필요한 종속성을 가져옵니다.

는 또한 패키지 apache2-mod_apreq2, apache2-mod_perl, libapreq2, perl-Apache2-Request를 설치, 저장소 Apache:Modules를 추가, 일반적으로 아파치 웹 서버와 함께 사용되는 펄 물건을 추가합니다.

관련 문제