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が見つからないのはなぜですか?誰もが同じ問題を抱えていますか?
これは、プログラミングの問題ではありません。まだ...
インストーラーは2つの方法でOpenSSLサポートをチェックします。最初のチェックは失敗し、2番目は成功しました。私にとって、最初のチェックは成功しました(以下を参照)。どちらの方法でも機能します。
これは私がそれを構築したときに得たものです:
$ 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. を 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がパッケージのインストールの確認に失敗した場合、2番目のチェックセットが実行されます。その場合、libcryptとlibsslに関数が存在するかどうかをチェックする簡単なgccプログラムをコンパイルしようとします。これらの両方が成功した場合、インストールが続行されます。それらの1つが失敗すると、致命的なエラーが発生し、スクリプトが爆破されます。
@weng:私は同じ問題を抱えていました。解決策は簡単でした:Sudo apt-get install pkg-config :)
Debian 6でも同じ問題が発生しました。libcurl4-openssl-devをインストールする必要がありました。
Rootユーザーに切り替えるか、Sudoを使用して実行します。
apt-get install libcurl4-openssl-dev
これで問題が解決しました。
Centos 5.xを使用している場合は、。/ configureの前にopenssl-develをインストールしてください。
yum install openssl-devel
これは私にとってcentosで同じ問題を解決しました。
私も同じ問題を抱えていました。
私は試した
./configure --prefix=/opt/node --openssl-libpath=/usr/local/lib/
と思っていても解決しました--openssl-libpath=/usr/local/lib/
は必要ありません
['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/usr/sfw/lib']
でパスを確認してください。./configure --openssl-libpath=/usr/local/ssl/lib --openssl-includes=/usr/local/ssl/include
で次のオプションを試してください私ができるようです:
apt-get install lib32z1-dev
apt-get install pkg-config
ubuntu 11.04または11.10で新しいRackspaceデプロイメントを実行しているときに、opensslに関するすべてのエラーと警告を一貫して削除します。
Node.jsを使用してこれらのタイプのインスタンスを起動するために最終的に解決したスクリプトの概要を示す要点を次に示します。
https://Gist.github.com/1606102
編集:ノードなどに加えられた更新を反映するように要点を更新しました。
Ubuntu 12.04でこの問題を解決するには:
apt-get install pkg-config -y
Sudo apt-get install g ++ curl libssl-dev Apache2-utils
新しいDebian 6.0(より正確には、Debian 6.0.2.1 i386)をセットアップした人がnode.js v.0.6.15(現時点で最新の安定版)を実行するには、次のパッケージをインストールする必要があります。-ビルド-基本-pkg-config-libssl-dev
Aptitude -y install "package"を使用してください。Debianの皆さんに役立つことを願っています。 :)