开发者

Error while installing Crypt::SSLeay on linux

So i'm trying to install Apache with SSL ergo Apache Openssl and SSLeay. I'm done with Apache2 and Openssl know i'm having difficulties getting SSLeay installed. I get as far as perl Makefile.PL after that all commands fail.

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 choose the /usr installation because that is the one that I have openssl-devel installed on, since i looked at this question, that is simmilar and found out that openssl-devel is needed. So I installed openssl-devel

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

But know i still get the following error when i run 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

I would think that the reason is that perl does not find the openssl-devel library, if so how do i link it so it can be found.

Thanks in advance Almightybob


Why not use the version that has been pre-build for your distribution?

$ sudo yum install perl-Crypt-SSLeay

(Or some close equivalent)


If it can't find the library you usually get an undefined symbol error. This lookes more like it found the library but didn't like it. Is it possible you're trying to use a 32bit openssl with 64bit perl or vise versa?


You are confused about the pieces of software.

On openSUSE and related distros, simply sudo zypper install apache2. The Apache httpd v2 already includes a binding to OpenSSL named mod_ssl; this command will automatically install all necessary dependencies to serve content over SSL, including the OpenSSL library. It is not needed to compile anything.

SSLeay is part of the Perl HTTP client stack. It is good for accessing someone else's content on a remote server over SSL. This is the opposite of what you want, but if you desire it anyway, first add the repository devel:language:perl, then install the package perl-LWP-Protocol-https. Again, this will automatically pull in the required dependencies, including perl-Net-SSLeay.

To add Perl stuff which is commonly used in conjunction with your Apache web server, add the repository Apache:Modules, then also install the packages apache2-mod_apreq2, apache2-mod_perl, libapreq2, perl-Apache2-Request.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜