在 erlang 环境中将 aerospike 客户端集成为全局模块

Integrate aerospike client in erlang environment as global module

我想将 aerospike erlang 客户端作为 Fedora 21 中的全局模块集成到 erlang 环境中。 我实现了制作客户端 nif 和模块,但我必须始终在每个项目中复制文件。 现在我想像 erlang 或 os 模块一样使用 aerospike 模块。 我该怎么做?

我在试验 Aerospike 绑定时遇到了同样的问题。问题是假定 .so 文件位于当前工作目录中。我对 aerospike.erl 做了一个小改动,因此它的位置与路径无关。

替换

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

init()

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

启动时erl,将路径添加到包含 Aerospike 光束文件和 .so 的目录:erl -pa path_to_aerospike/erlang/