【问题标题】:Unix CouchDB installation + KERLUnix CouchDB 安装 + KERL
【发布时间】:2014-08-11 03:17:43
【问题描述】:

我正在尝试通过源包在我的 planetlab Unix 机器上安装 CouchDB。

我使用 Kerl 安装了 Erlang r16b01:http://docs.basho.com/riak/1.3.0/tutorials/installation/Installing-Erlang/#Install-using-kerl

我从源包安装了 openssl。

所以,我运行了“./configure --with-erlang=path/to/erlang/using/kerl”,我得到了错误

"configure: error: Could not find the Erlang crypto library"

此错误表明 Erlang 未使用 OpenSSL 支持进行编译。

所以,我尝试使用 "KERL_CONFIGURE_OPTIONS=--with-ssl=path/to/openssl/lib" (不确定我是否正确使用了上述命令) 然后,重新安装并重新激活 Erlang。 这仍然会带来同样的错误。

我检查了 Erlang 是否可以执行“crypto.start()”,它让我输入命令,但没有像文档中那样回复“ok”:http://dennisreimann.de/blog/installing-couchdb-and-erlang-on-ubuntu-hardy/


请帮忙!

【问题讨论】:

  • 可能不相关,你安装的是哪个版本的openssl?

标签: unix couchdb


【解决方案1】:

1) 您是否首先创建了用户 couchdb,然后以该用户身份执行所有操作?包括erlang构建和安装?这可能更容易。

2) 你的测试中有一个错误,你需要在 erl shell 中用一个点终止你的命令,否则你没有得到响应,就像你已经注意到的那样。 crypto:start(). 正确:

$ erl
Eshell V6.1  (abort with ^G)                                                                        
1> crypto:start().                                                                                    
** exception error: undefined function crypto:start/0 

成功构建和安装后,它会响应 ok:

$ erl
Eshell V6.1  (abort with ^G)                                                                              
1> crypto:start().                                                                                    
ok

你也可以事后停止:

2> crypto:stop().                                                                                    
ok
3> 
=INFO REPORT==== 10-Aug-2014::20:22:06 ===
    application: crypto
    exited: stopped
    type: temporary

3) 需要OpenSSL的开发包,包括头文件和二进制命令程序openssl。至少需要 0.9.8 版的 OpenSSL。作为 debian 和 ubuntu 用户的旁注,通常运行它就足够了:

sudo apt-get install openssl libssl-dev

在您的情况下,您应该以某种方式确保您的 openssl 源安装包含上述所有内容(openssl 二进制文件、头文件)。

4) 很可能是查找库的问题。我建议阅读此答案,该答案涉及基于 unix 的系统,它可以为您指明正确的方向:

https://stackoverflow.com/a/14776521/362951

根据crypto:start(). 之后的错误消息,您可以尝试以某种方式添加shell 的路径和注销并重新登录,然后激活kerl 并重试。如果它存在并在编译时找到,则无需重新构建。

5) 您的 kerl 配置看起来不错。再次使用 debian/ubuntu 路径 ~/.kerlrc 可能看起来像

KERL_CONFIGURE_OPTIONS="--with-ssl=/usr/lib/ssl"

希望您插入的 ssl 路径是正确的。

您也可以尝试省略路径,也许它会自行找到正确的路径。在http://www.erlang.org/doc/installation_guide/INSTALL.html 上看起来这样做是有效的:

KERL_CONFIGURE_OPTIONS="--with-ssl"

目前,如果 kerl 找不到标头 https://github.com/yrashk/kerl/issues/31

,它会默默地生成一个没有加密的构建

6) 我看到您将--with-erlang 参数提供给couchdb,它是否指向正确的目录?或者,它可能需要更深一层或上一层。

否则可能是较旧的系统。如果找到,可以使用宽 erlang。

我也不确定 kerl 环境和使用 --with-erlang 参数将 erlang 位置传递给 couchdb 的组合是否有效。我没有用kerl尝试--with-erlang参数,因为我在编译couchdb之前激活了kerl环境,然后在couchdb启动脚本之前再次激活。

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多