我正在尝试从源码包在我的planetlab Unix机器上安装CouchDB。
我使用Kerl:http://docs.basho.com/riak/1.3.0/tutorials/installation/Installing-Erlang/#Install-using-kerl安装了Erlang r16b01
我从源码包安装了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/
请帮帮我!
发布于 2014-08-11 02:25:50
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: temporary3)您需要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)我看到你给couchdb提供了--with-erlang参数,它指向正确的目录了吗?或者它可能需要更深一层或更高一层。
否则可能是较旧的系统。如果找到,可以使用宽erlang。
此外,我不确定kerl环境和使用--with-erlang参数将erlang位置传递给couchdb的组合是否有效。我没有尝试在kerl中使用--with-erlang参数,因为我在编译couchdb之前激活了kerl环境,然后在couchdb启动脚本之前又激活了一次。
https://stackoverflow.com/questions/23234648
复制相似问题