2011-10-05 28 views
1

Apache Apache OpensslとSSLeayでApacheをインストールしようとしています。私はApache2とOpensslで終わりました。私はSSLeayをインストールするのが難しいと知っています。私はperl Makefile.PLまではすべてのコマンドが失敗した後になる。Linuxに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] 

それは私が私がthis question, that is simmilarを見て、opensslの-develのが必要であることが分かったので、opensslの-develのが、上のインストールされているものですので、私は、/ usrインストールを選択します。だから私は、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 

をインストールしかし、私は理由がperlのは、OpenSSL-develのライブラリーを見つけられないということであると思うだろう、私は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 

を実行したときに、私はまだ次のエラーを取得する知っていますもしそうなら、私はそれを見つけることができるようにリンクします。

+0

私は 'Crypt :: SSLeay'で修正する必要があります。もう一度 'Makefile.PL'がそれらの一つです。最近のうちに、私はそれに取り掛かるつもりです。その間に、パッケージが提供されていれば、パッケージ化されたバージョンを使用してください。 –

答えて

0

Almightybob事前に

おかげで、それはあなたが通常undefined symbolエラーを取得するライブラリを見つけることができない場合。これはライブラリを見つけたように見えるが、それは好きではなかった。 32ビットのopensslを64ビットperlで使用しようとしている可能性はありますか?

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など、必要な依存関係が自動的に引き継がれます。

、一般的に、あなたのApacheウェブサーバと組み合わせて使用​​されているPerlのものを追加し、リポジトリApache:Modulesを追加し、その後もパッケージapache2-mod_apreq2apache2-mod_perllibapreq2perl-Apache2-Requestをインストールします。

関連する問題