OpenSSL bị thiếu trong ./mình. Làm thế nào để khắc phục?


79

Tôi đã cố gắng cài đặt node.js và thấy hỗ trợ OpenSSL bị thiếu trong thời gian ./configure.

Làm thế nào tôi có thể sửa chữa nó? Đây có phải là một bước bắt buộc? Sẽ --without-ssllựa chọn giải quyết vấn đề?

# ./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.

Câu trả lời:


143

Vâng, đó là một bước bắt buộc. Bạn không thể xóa OpenSSL khỏi chương trình sử dụng nó, giống như cách bạn không thể loại bỏ các bộ phận động cơ ngẫu nhiên khỏi xe hơi.

Thư viện OpenSSL thường đã được cài đặt, nhưng bạn phải cài đặt các tệp tiêu đề. Tùy thuộc vào bản phân phối Linux của bạn, bạn sẽ cần các gói này:

  • Mũ đỏ, Fedora, CentOS - openssl-devel
  • Debian, Ubuntu - libssl-dev
  • Cổng vòm - openssl

Về mặt kỹ thuật, người ta có thể thay thế OpenSSL bằng NSS, nhưng đó không phải là vấn đề ở đây.


1
cảm ơn rất nhiều, tôi đã cài đặt tiêu đề bằng cách cài đặt yum openssl-devel
PK

Ah có ý nghĩa bây giờ. Điều này là cần thiết cho wget để ./mình với ssl là tốt.
dhaupin

3
Sau khi sử dụng câu trả lời grawitys trong khi cố gắng định cấu hình mực (3.5.26) với openssl Tôi đã vấp phải một số hiệu ứng phụ kỳ lạ: Trừ khi bạn đã cài đặt "pkg-config", thư viện "openssl" và "libssl-dev" được coi là nếu nó bị mất Vì vậy, tôi đã phải cài đặt pkg-config là tốt. Nó được sử dụng trong tập lệnh configure (khoảng dòng 23362) để tìm đường dẫn và sự tồn tại của gói này. Trên debian, nó được cài đặt bởi:>apt-get install pkg-config
Mihovil Bubnjar

8

debian:

apt-get install libssl-dev

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

5
Làm thế nào và tại sao điều này giúp khắc phục vấn đề?
Kevin Panko

1
@KevinPankolibssl-dev

@KevinPanko công trình này tôi có thể xác nhận. Câu trả lời của Albert là chính xác.
Jeff Atwood

1
@JeffAtwood Tôi không nghi ngờ gì, nhưng nó hữu ích khi một câu trả lời giải thích tại sao cần một lệnh.
Kevin Panko

điều này không giải quyết được cho tôi, cũng là cấu hình --without-ssl cho tôi rằng đó là gói bắt buộc
Fabiotk

4

Không, không phải vậy.

Bạn vẫn có thể biên dịch nodejs với ./configure --without-ssl


2

Điều này đang hiển thị trên Google cho một vấn đề có thể xảy ra với một số cài đặt - có thể là links-g. Tôi gặp vấn đề trên Archlinux với links-utf8 và links-g-directfb.

Có khả năng trình bày:

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

Thử đi:

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

Sử dụng lệnh này trước khi ./configurebước của bạn sẽ sửa nó.


2
Tại sao bản vá đó khắc phục vấn đề?
user237419

2

Bạn phải cài đặt openssl-develtrong hệ điều hành của mình với:

yum install openssl-devel.x86_64

./configure --with-tls

make install


0

Nếu bạn không thành công chỉ với libssl-dev , qua bản phân phối Debian , bạn có thể bao gồm cả hai phiên bản Thư viện SSL cùng một lúc

apt-get install libssl-dev libssl1.0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.