Установка Node.js: openssl не установлен - PullRequest
44 голосов
/ 20 октября 2010

Я установил libssl-dev и openssl, но я получаю это при установке node.js:

> ./configure && make && make install                                                                                          
Checking for program g++ or c++          : /usr/bin/g++                                                                                                               
Checking for program cpp                 : /usr/bin/cpp                                                                                                               
Checking for program ar                  : /usr/bin/ar                                                                                                                
Checking for program ranlib              : /usr/bin/ranlib                                                                                                            
Checking for g++                         : ok                                                                                                                         
Checking for program gcc or cc           : /usr/bin/gcc                                                                                                               
Checking for gcc                         : ok                                                                                                                         
Checking for library dl                  : yes                                                                                                                        
Checking for openssl                     : not found                                                                                                                  
Checking for function SSL_library_init   : yes                                                                                                                        
Checking for header openssl/crypto.h     : yes                                                                                                                        
Checking for library rt                  : yes                                                                                                                        
Checking for fdatasync(2) with c++       : yes 

Openssl не найден.Но узел был успешно установлен.

Почему не найден openssl?У кого-нибудь есть такая же проблема?

Ответы [ 10 ]

49 голосов
/ 24 января 2011

@ weng: У меня была такая же проблема. Решение было простым: sudo apt-get install pkg-config:)

35 голосов
/ 20 октября 2010

Это не совсем вопрос программирования.Тем не менее ...

Быстрый ответ

Программа установки проверяет поддержку OpenSSL двумя способами.Первая проверка не удалась, вторая прошла успешно.Для меня первая проверка прошла успешно (см. Ниже).Любой способ работает.

Более длинный ответ

Вот что я получил, когда построил его:

$ sudo apt-get install libssl-dev
$ ./configure
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for program gcc or cc           : /usr/bin/gcc 
Checking for gcc                         : ok  
Checking for library dl                  : yes 
Checking for openssl                     : yes 
Checking for library rt                  : yes 
<---snip--->

Предполагается, что вы скачали node.js v0.2.3 из http://nodejs.org/, конфигурация в основном выполняется waf в файле wscript.

Соответствующие строки:

  if not Options.options.without_ssl:
    if conf.check_cfg(package='openssl',
                      args='--cflags --libs',
                      uselib_store='OPENSSL'):
      Options.options.use_openssl = conf.env["USE_OPENSSL"] = True
      conf.env.append_value("CPPFLAGS", "-DHAVE_OPENSSL=1")
    else:
      libssl = conf.check_cc(lib='ssl',
                             header_name='openssl/ssl.h',
                             function_name='SSL_library_init',
                             libpath=['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/usr/sfw/lib'],
                             uselib_store='OPENSSL')
      libcrypto = conf.check_cc(lib='crypto',
                                header_name='openssl/crypto.h',
                                uselib_store='OPENSSL')

Первая частьдостаточно просто.Он запускает pkgconfig.Вот что происходит, когда я делаю эквивалент вручную:

 $ pkg-config openssl --cflags --libs
 -lssl -lcrypto  

Второй набор проверок запускается, если pkg-config не может подтвердить, что пакет установлен.В этом случае он пытается скомпилировать тривиальную программу gcc, которая проверяет наличие функций в libcrypt и libssl.Если оба они успешно, установка продолжается.Если один из них дает сбой, возникает фатальная ошибка, и сценарий взрывается.

26 голосов
/ 04 августа 2011

У меня была та же проблема с Debian 6. Мне пришлось установить libcurl4-openssl-dev.

Переключиться на пользователя root или использовать sudo, затем запустить:

apt-get install libcurl4-openssl-dev

Thisисправил проблему для меня.

10 голосов
/ 17 июня 2011

Если вы используете Centos 5.x, убедитесь, что вы установили openssl-devel до ./configure.

yum install openssl-devel

Это решило ту же проблему для меня в сентосах.

3 голосов
/ 31 марта 2012

У меня была такая же проблема.

Я пытался

./configure --prefix=/opt/node --openssl-libpath=/usr/local/lib/

, который решил это, хотя я думаю, --openssl-libpath=/usr/local/lib/ не нужно

3 голосов
/ 13 января 2012

Похоже, что я могу сделать:

apt-get install lib32z1-dev
apt-get install pkg-config

, чтобы последовательно удалять все ошибки и предупреждения об openssl, когда я делаю новое развертывание Rackspace с Ubuntu 11.04 или 11.10, на случай, если это поможет кому-то еще.

Вот краткое изложение сценария, на котором я наконец остановился, чтобы раскрутить экземпляры такого типа с помощью node.js:

https://gist.github.com/1606102

Править: обновлена ​​суть, отражающая обновления, внесенные в Node и т. Д.

3 голосов
/ 16 ноября 2011
  1. подтвердите ваш установленный openssl.
  2. если установлено, подтвердите его путь в ['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/usr/sfw/lib'];
  3. если не в этих путях, попробуйте следующие опции с правильным путем openssl ./configure --openssl-libpath=/usr/local/ssl/lib --openssl-includes=/usr/local/ssl/include
2 голосов
/ 19 августа 2012

Чтобы решить эту проблему в Ubuntu 12.04:

apt-get install pkg-config -y
1 голос
/ 19 апреля 2012

Для людей с новым Debian 6.0 (точнее: Debian 6.0.2.1 i386) необходимо установить следующие пакеты для запуска node.js v.0.6.15 (последняя стабильная на данный момент): - build-основы - pkg-config - libssl-dev

Просто используйте aptitude -y install "package" ... надеюсь, это поможет всем вам, ребята из Debian. :)

1 голос
/ 19 сентября 2011

sudo apt-get install g ++ curl libssl-dev apache2-utils

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...