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启动脚本之前再次激活。