Я установил 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 не найден. Но node был успешно установлен.
Почему не открывается openssl? У кого-то такая же проблема?
Это не совсем вопрос программирования. Тем не менее...
Установщик проверяет поддержку 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. Если это удастся, установка продолжится. Если один из них не работает, возникает фатальная ошибка, а script вылетает.
@weng: У меня была такая же проблема. Решение было простым: sudo apt-get install pkg-config:)
У меня была та же проблема с Debian 6. Мне пришлось установить libcurl4-openssl-dev.
Переключитесь на пользователя root или используйте sudo, затем запустите:
apt-get install libcurl4-openssl-dev
Это устранило проблему для меня.
Если вы используете Centos 5.x, убедитесь, что вы устанавливаете openssl-devel перед. /configure.
yum install openssl-devel
Это решило ту же проблему для меня в centos.
У меня была та же проблема.
Я пробовал
./configure --prefix=/opt/node --openssl-libpath=/usr/local/lib/
который решил его, хотя я думаю, что --openssl-libpath=/usr/local/lib/
не требуется
Похоже, я могу сделать:
apt-get install lib32z1-dev
apt-get install pkg-config
чтобы последовательно удалять все ошибки и предупреждения о openssl, когда я делаю новое развертывание Rackspace с Ubuntu 11.04 или 11.10, в случае, если кто-то может помочь.
Здесь сущность с сокращением script, я, наконец, решил закрутить эти типы экземпляров с помощью node.js:
https://gist.github.com/1606102
Изменить. Обновлен параметр, отражающий обновления, сделанные в Node и т.д.
['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/usr/sfw/lib']
;./configure --openssl-libpath=/usr/local/ssl/lib --openssl-includes=/usr/local/ssl/include
Чтобы решить эту проблему в Ubuntu 12.04:
apt-get install pkg-config -y
Для людей с новым Debian 6.0 (точнее: Debian 6.0.2.1 i386), необходимо установить следующие пакеты для запуска node.js v.0.6.15 (последняя стабильная на данный момент ): - сборка - pkg-config - libssl-dev
Просто используйте aptitude -y install "package"... надеюсь, что это поможет всем вам, ребятам из Debian.:)
sudo apt-get install g++ curl libssl-dev apache2-utils