OpenSSL หายไประหว่าง. / config จะแก้ไขอย่างไร


79

ฉันพยายามติดตั้ง node.js และพบว่าขาดการสนับสนุน OpenSSL ในระหว่าง./configureนั้น

ฉันจะแก้ไขได้อย่างไร มันเป็นขั้นตอนบังคับหรือไม่? จะ--without-sslมีตัวเลือกแก้ไขปัญหาได้หรือไม่

# ./configure

Checking for gcc                         : ok
Checking for library dl                  : not found
Checking for openssl                     : not found
Checking for function SSL_library_init   : not found
Checking for header openssl/crypto.h     : not found
/home/ec2-user/node-v0.6.6/wscript:374: error: Could not autodetect OpenSSL 
                                               support.

Make sure OpenSSL development packages are installed. Use configure --without-ssl 
to disable this message.

คำตอบ:


143

ใช่มันเป็นขั้นตอนบังคับ คุณไม่สามารถลบ OpenSSL ออกจากโปรแกรมที่ใช้งานได้เช่นเดียวกับที่คุณไม่สามารถเอาชิ้นส่วนเครื่องยนต์แบบสุ่มออกจากรถได้

โดยปกติไลบรารี OpenSSL จะถูกติดตั้งไว้แล้ว แต่คุณต้องติดตั้งไฟล์ส่วนหัว ขึ้นอยู่กับการกระจาย Linux ของคุณคุณจะต้องมีแพ็คเกจเหล่านี้:

  • Red Hat, Fedora, CentOS - openssl-devel
  • Debian, Ubuntu - libssl-dev
  • ซุ้มประตู - openssl

เทคนิคหนึ่งสามารถแทนที่ OpenSSL ด้วย, พูด, NSS แต่นั่นไม่ใช่จุดที่นี่


1
ขอบคุณมากฉันติดตั้งส่วนหัวโดย yum install openssl-devel
PK

อาเข้าเรื่องแล้ว นี่เป็นสิ่งจำเป็นสำหรับ wget ที่จะ. / กำหนดค่าด้วย ssl เช่นกัน
dhaupin

3
หลังจากใช้คำตอบ grawityในขณะที่พยายามกำหนดค่า squid (3.5.26) ด้วย openssl ฉันได้เจอกับผลข้างเคียงที่แปลกประหลาด: หากคุณไม่ได้ติดตั้ง "pkg-config" ไว้ไลบรารี "openssl" และ "libssl-dev" จะได้รับการปฏิบัติเหมือน ถ้ามันหายไป ดังนั้นฉันต้องติดตั้ง pkg-config เช่นกัน มันถูกใช้ในสคริปต์กำหนดค่า (รอบ ๆ บรรทัด 23362) เพื่อค้นหาเส้นทางและการมีอยู่ของแพ็คเกจนี้ บนเดเบียนมันถูกติดตั้งโดย:>apt-get install pkg-config
Mihovil Bubnjar

8

เดเบียน:

apt-get install libssl-dev

apt-get install linux-headers-$(uname -r)

5
สิ่งนี้ช่วยได้อย่างไรและทำไมจึงแก้ปัญหาได้?
Kevin Panko

1
@KevinPankolibssl-dev

@KevinPanko งานนี้ฉันสามารถยืนยันได้ คำตอบของอัลเบิร์ตนั้นถูกต้อง
Jeff Atwood

1
@JeffAtwood ฉันไม่สงสัยเลย แต่มันช่วยได้เมื่อคำตอบอธิบายว่าทำไมคำสั่งจำเป็น
Kevin Panko

นี้ไม่ได้แก้ไขได้สำหรับฉันยังกำหนดค่า --without-SSL ให้ฉันว่ามันเป็นแพคเกจที่จำเป็น
Fabiotk


2

นี่แสดงให้เห็นใน Google สำหรับปัญหาที่อาจเกิดขึ้นกับการติดตั้งบางอย่าง - อาจเป็นลิงค์ -g ฉันมีปัญหากับ Archlinux ที่มี links-utf8 และ links-g-directfb

การนำเสนอที่น่าจะเป็น:

checking OPENSSL_CFLAGS... 
checking OPENSSL_LIBS... -lssl -lcrypto 
checking for OpenSSL... no
configure: error: OpenSSL not found

ลองสิ่งนี้:

sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" configure

การใช้คำสั่งนี้ก่อน./configureขั้นตอนของคุณควรแก้ไข


2
เหตุใดแพทช์จึงแก้ไขปัญหาได้
user237419

2

คุณต้องติดตั้งopenssl-develในระบบปฏิบัติการของคุณด้วย:

yum install openssl-devel.x86_64

./configure --with-tls

make install


0

หากคุณไม่ประสบความสำเร็จกับlibssl-devเท่านั้นบนDebian distro คุณสามารถรวมทั้งไลบรารี SSLรุ่นเดียวกันในเวลาเดียวกัน

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