首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unix CouchDB安装+内核

Unix CouchDB安装+内核
EN

Stack Overflow用户
提问于 2014-04-23 12:18:54
回答 1查看 965关注 0票数 4

我正在尝试从源码包在我的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“并得到错误

代码语言:javascript
复制
"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/

请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2014-08-11 02:25:50

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

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

代码语言:javascript
复制
$ erl
Eshell V6.1  (abort with ^G)                                                                        
1> crypto:start().                                                                                    
** exception error: undefined function crypto:start/0 

在成功构建和安装之后,它将响应ok:

代码语言:javascript
复制
$ erl
Eshell V6.1  (abort with ^G)                                                                              
1> crypto:start().                                                                                    
ok

你也可以在之后停止它:

代码语言:javascript
复制
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的人来说,运行以下命令通常就足够了:

代码语言:javascript
复制
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可能如下所示

代码语言:javascript
复制
KERL_CONFIGURE_OPTIONS="--with-ssl=/usr/lib/ssl"

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

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

代码语言:javascript
复制
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启动脚本之前又激活了一次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23234648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档