openssl ล้มเหลวในการติดตั้งจากแหล่งที่ผิดพลาด: / usr / bin / ld: ไม่สามารถหา -lssl


1

ฉันพยายามติดตั้ง openssl ตามซอร์สที่รัน:

wget  wget ftp://ftp.openssl.org/source/openssl-1.0.2g.tar.gz
tar xvzf openssl-1.0.2g.tar.gz
cd openssl-1.0.2g
./config --prefix=/home/david/project shared 
make depend
make test
make install
make

มันล้มเหลวหลังจากทำการทดสอบดำเนินการกับ:

make[2]: Leaving directory `/home/david/project/openssl-1.0.1s'
make[2]: Entering directory `/home/david/project/openssl-1.0.1s/test'
/usr/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
make[2]: *** [link_app.gnu] Error 1
make[2]: Leaving directory `/home/david/project/openssl-1.0.1s/test'
make[1]: *** [bntest] Error 2
make[1]: Leaving directory `/home/david/project/openssl-1.0.1s/test'
make: *** [tests] Error 2

libssl-dev สามารถติดตั้งจากแหล่งที่มาได้อย่างไรเนื่องจากฉันไม่ได้ใช้ตัวจัดการแพ็คเกจ


แก้ไข ฉันมี:

[root@localhost lib64]# ls -l libssl*
-rwxr-xr-x. 1 root root 258456 Dec 15 19:46 libssl3.so
lrwxrwxrwx. 1 root root     16 Feb 27 22:10 libssl.so.10 -> libssl.so.1.0.1e
-rwxr-xr-x. 1 root root 441240 Jan  8 14:45 libssl.so.1.0.1e

และเพิ่ม:

[root@localhost lib64]# ls -l libssl*
-rwxr-xr-x. 1 root root 258456 Dec 15 19:46 libssl3.so
lrwxrwxrwx. 1 root root     16 Mar 18 16:24 libssl.so -> libssl.so.1.0.1e
lrwxrwxrwx. 1 root root     16 Feb 27 22:10 libssl.so.10 -> libssl.so.1.0.1e
-rwxr-xr-x. 1 root root 441240 Jan  8 14:45 libssl.so.1.0.1e

ฉันจะเพิ่มการเชื่อมโยงสัญลักษณ์ได้อย่างไร มีบางอย่างที่ฉันสามารถทำได้เป็นตัวเลือกการติดตั้งหรือไม่?

คำตอบ:


0

./config --prefix = / home / david / โครงการที่ใช้ร่วมกัน

ปกติฉันไม่ใช้คำนำหน้า ฉันอยากจะแนะนำให้ใช้ OPENSSLDIR เนื่องจาก OpenSSL กำหนดค่ารองรับตัวเลือก:

wget ftp://ftp.openssl.org/source/openssl-1.0.2g.tar.gz
tar xvzf openssl-1.0.2g.tar.gz
cd openssl-1.0.2g
./config shared no-ssl2 no-ssl3 no-comp --openssldir=/home/david/project 

make depend
make test
make install

makeนอกจากนี้คุณดูเหมือนจะมีความพิเศษ ฉันเดาว่าคุณคงไม่ต้องการมัน มันมีจุดประสงค์อะไร

make depend
make test
make install
make

นอกจากนี้คุณอาจหลีกเลี่ยงการติดตั้ง man pages แบบโลคัลและใช้make install_sw:

make depend
make test
make install_sw

คุณควรพิจารณาใช้ RPATH เพื่อให้แน่ใจว่าคุณหลีกเลี่ยงปัญหาการเชื่อมโยงรันไทม์:

export MYPATH=/home/david/project 
./config shared no-ssl2 no-ssl3 no-comp -Wl,-rpath=${MYPATH}/lib --openssldir=${MYPATH}

แก้ไข ฉันมี ...

ก่อนที่คุณจะเริ่มติดตั้งลงในไดเรกทอรีการติดตั้งที่มีอยู่คุณควรลบการติดตั้งในเครื่องเก่า:

export MYPATH=/home/david/project
rm -rf ${MYPATH}

./config shared no-ssl2 no-ssl3 no-comp -Wl,-rpath=${MYPATH}/lib --openssldir=${MYPATH}
make
make test
make install_sw

ดูการคอมไพล์และการติดตั้งบนวิกิ OpenSSL มันกล่าวถึงคำนำหน้า OPENSSLDIR และ RPATHs นอกจากนี้ยังกล่าวถึงการตั้งค่าตัวเลือกอื่น ๆ เช่นno-ssl2, และno-ssl3no-comp

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.