4

I am attempting to install CouchDB on my planetlab Unix machines from the source packages.

I installed Erlang r16b01 using Kerl: http://docs.basho.com/riak/1.3.0/tutorials/installation/Installing-Erlang/#Install-using-kerl

I installed openssl from the source package.

So, I ran "./configure --with-erlang=path/to/erlang/using/kerl" and I get the error

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

This error indicates that Erlang was not compiled with OpenSSL support.

So, I tried using "KERL_CONFIGURE_OPTIONS=--with-ssl=path/to/openssl/lib" (Not sure if I'm using the above command correctly) Then, reinstalled and reactivated Erlang. This still brings up the same error.

I checked if Erlang if it could execute "crypto.start()", and it let me type the command, but it doesn't have a reply "ok" like in the documention: http://dennisreimann.de/blog/installing-couchdb-and-erlang-on-ubuntu-hardy/


Please help!

Albert
  • 41
  • 2

1 Answers1

1

1) Did you first create a user couchdb and then do everything as that user? Including erlang build and install? That might be easier.

2) There is an error in your test, you need to terminate your command in the erl shell with a dot, otherwise you get no responce, like you already noticed. crypto:start(). is correct:

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

After a successful build and installation it will respond ok:

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

And you can also stop it afterwards:

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

3) You need the development package of OpenSSL including the header files as well as the binary command program openssl. At least version 0.9.8 of OpenSSL is required. As a sidenote for people who are on debian and ubuntu, it is usually enough to run:

sudo apt-get install openssl libssl-dev

In your case, you should somehow make sure that your openssl source install includes all the above (openssl binaries, header files).

4) Most probably it could be an issue with finding the libraries. I recommend reading this answer, which deals with a unix based system, and it could point you to the right direction:

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

Depending on the error message after the crypto:start(). you could try to somehow add the path and logout of the shell and relogin and then activate kerl and try again. No need to rebuild if it was present and found at compile time.

5) Your kerl configuration looks good. Again using debian/ubuntu paths a ~/.kerlrc could look like

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

And hopefully the ssl path you are inserting is the correct one.

You could also try and omit the path, maybe it finds the correct one by itself. On http://www.erlang.org/doc/installation_guide/INSTALL.html it looks like it is valid to do so:

KERL_CONFIGURE_OPTIONS="--with-ssl"

Currently kerl silently produces a build without crypto if it fails to find the headers https://github.com/yrashk/kerl/issues/31

6) I see you are giving the --with-erlang parameter to couchdb, does it point to the right directory? Or maybe it needs to go one level deeper or one level up.

Otherwise possibly an older, system. wide erlang could be used, if found.

Also I am not sure if the combination of a kerl environment and passing the erlang location using the --with-erlang parameter to couchdb works. I did not try the --with-erlang parameter with kerl, because I activate the kerl environment before compiling couchdb and then again before the couchdb start script.

Community
  • 1
  • 1
mit
  • 11,083
  • 11
  • 50
  • 74