我正在创建一个需要使用perl模块Crypt-SSLeay的Web应用程序。该模块具有需要OpenSSL头文件的依赖性。由于我的Linux服务器都没有通过这些步骤来安装,但由于我的经验有限,我收到了一个很难理解的错误(见下文)。无法安装Crypt-SSLeay模块
服务器信息: 运行Oracle企业级Linux
Linux版本的2.6.18-194.11.4.0.1.el5([email protected])(gcc版本4.1.2 20080704(红帽4.1.2-48))
步骤来复制问题:
下载并从here提取的OpenSSL 0.9.8r和运行下面的命令(将目录)
./config --openssldir=/usr/local/openssl
make
make test
sudo make install
下载并解压缩后, Crypt-SSLeay模块从here然后输入e运行以下命令
perl Makefile.PL
make
我收到以下错误(将目录后)我运行“make”:
BUILD INFORMATION
================================================
ssl library: OpenSSL 0.9.8r in /usr/local/openssl
ssl header: openssl/ssl.h
libraries: -L/usr/local/openssl/lib -lssl -lcrypto -lgcc
include dir: -I/usr/local/openssl/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]
-bash-3.2$ make
gcc -c -I/usr/local/openssl/include -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"0.58\" -DXS_VERSION=\"0.58\" -fPIC "-I/usr/lib64/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
gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic SSLeay.o -o blib/arch/auto/Crypt/SSLeay/SSLeay.so \
-L/usr/local/openssl/lib -lssl -lcrypto \
/usr/bin/ld: /usr/local/openssl/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
/usr/local/openssl/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来使这个模块工作时。任何帮助赞赏。
发现我错过了什么。当我刚刚使用命令“sudo yum install openssl-devel”时,我正在编译OpenSSL。一切都在工作。谢谢! – arcdegree 2011-03-08 22:26:38
很高兴你解决它。不要忘记删除自定义编译的openssl库。他们不应该伤害任何东西,但是具有半功能安全库并不被认为是安全人员的“最佳实践”:-) – Mat 2011-03-08 22:29:15