OpenSSL отсутствует во время ./configure. Как исправить?


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 для ./configure с ssl.
Дхаупин

3
После использования ответа grawitys при попытке настроить squid (3.5.26) на openssl я наткнулся на какой-то странный побочный эффект: если у вас не установлено «pkg-config», библиотеки «openssl» и «libssl-dev» рассматриваются как если это отсутствовало. Поэтому мне пришлось также установить pkg-config. Он используется в скрипте конфигурации (около строки 23362), чтобы найти путь и существование этого пакета. На Debian устанавливается:>apt-get install pkg-config
Миховил Бубняр

8

Debian:

apt-get install libssl-dev

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

5
Как и почему это помогает решить проблему?
Кевин Панко

1
@KevinPankolibssl-dev

@KevinPanko это работает, я могу подтвердить. Альберт ответ правильный.
Джефф Этвуд

1
@JeffAtwood Я не сомневался в этом, но помогает, когда ответ объясняет, зачем нужна команда.
Кевин Панко

это не решило для меня, также настройте --without-ssl дал мне, что это обязательный пакет
Fabiotk

4

Нет, это не так.

Вы все еще можете скомпилировать nodejs с ./configure --without-ssl


2

Это обнаруживается в Google для проблемы, которая может возникнуть при некоторых установках - возможно, links-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


0

Если вам не удастся использовать только libssl-dev , а не дистрибутив Debian , вы можете включить обе версии библиотеки SSL одновременно

apt-get install libssl-dev libssl1.0
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.