jasmad
jasmad

Reputation: 115

Integrate aerospike client in erlang environment as global module

I want to integrate the aerospike erlang client to the erlang environment as a global module in Fedora 21. I achieve to make the client nif and module but I have to always copy the files in every project. Now I want to use the aerospike module like the erlang or os modules. How can I make this?

Upvotes: 0

Views: 168

Answers (1)

johlo
johlo

Reputation: 5500

I had the same issue when experimenting with the Aerospike binding. The problem is that the .so file is assumed to be in the current working directory. I made a small change to aerospike.erl so it's located correctly independent of the path.

Replace

ok = erlang:load_nif("./aerospike_nif", 0).

in init()

with

  EbinDir = filename:dirname(code:which(?MODULE)),
  SoFile  = filename:join(EbinDir,"aerospike_nif"),
  erlang:load_nif(SoFile, 0).

When starting erl, add the path to the directory containing the Aerospike beam files and .so: erl -pa path_to_aerospike/erlang/

Upvotes: 0

Related Questions