web-dev-qa-db-ja.com

Node.jsのインストール:opensslがインストールされていません

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が見つからないのはなぜですか?誰もが同じ問題を抱えていますか?

44
ajsie

これは、プログラミングの問題ではありません。まだ...

素早い回答

インストーラーは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つが失敗すると、致命的なエラーが発生し、スクリプトが爆破されます。

35

@weng:私は同じ問題を抱えていました。解決策は簡単でした:Sudo apt-get install pkg-config :)

49
Ashwin Bharambe

Debian 6でも同じ問題が発生しました。libcurl4-openssl-devをインストールする必要がありました。

Rootユーザーに切り替えるか、Sudoを使用して実行します。

apt-get install libcurl4-openssl-dev

これで問題が解決しました。

26
joshbennett

Centos 5.xを使用している場合は、。/ configureの前にopenssl-develをインストールしてください。

yum install openssl-devel

これは私にとってcentosで同じ問題を解決しました。

10
Hal

私も同じ問題を抱えていました。

私は試した

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

と思っていても解決しました--openssl-libpath=/usr/local/lib/は必要ありません

3
chatfeed
  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で次のオプションを試してください
3
mindon

私ができるようです:

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

ubuntu 11.04または11.10で新しいRackspaceデプロイメントを実行しているときに、opensslに関するすべてのエラーと警告を一貫して削除します。

Node.jsを使用してこれらのタイプのインスタンスを起動するために最終的に解決したスクリプトの概要を示す要点を次に示します。

https://Gist.github.com/1606102

編集:ノードなどに加えられた更新を反映するように要点を更新しました。

3
mikermcneil

Ubuntu 12.04でこの問題を解決するには:

apt-get install pkg-config -y
2
bithavoc

Sudo apt-get install g ++ curl libssl-dev Apache2-utils

1
j03m

新しいDebian 6.0(より正確には、Debian 6.0.2.1 i386)をセットアップした人がnode.js v.0.6.15(現時点で最新の安定版)を実行するには、次のパッケージをインストールする必要があります。-ビルド-基本-pkg-config-libssl-dev

Aptitude -y install "package"を使用してください。Debianの皆さんに役立つことを願っています。 :)

1
Bouncner