您是否在路径中使用riakc_pb_socket 运行您的节点?如果您查看repo's readme,您必须使用添加到erl 路径的已编译erlang 二进制文件来启动您的VM
$ erl -pa $PATH_TO_RIAKC/ebin $PATH_TO_RIAKC/deps/*/ebin
如果您在 Erlang shell 中,您可以验证您是否能够使用 l(ModuleName). 函数加载模块。您可以使用code:get_path(). 检查您的路径(在哪里查找二进制文件)。您也可以修改它(添加新目录),但作为一般规则,您应该有正确的 VM 启动脚本/命令。
最后,如果您开发自己的应用程序(我认为您是),您可以研究像 rebar 这样的工具。在那里你可以描述你所有的依赖,比如你的 erlang-riak 客户端,他会帮助你下载和编译它们。有了这个,你可以用简单的方式启动你的虚拟机
erl -pa ebin -pa deps/*/ebin
在 cmets 之后编辑
Riak 只是另一个应用程序,而使用 Erlang,您实际上可以将 wright 连接到其中。就在工作生产的东西里面。但这是非常危险的,或者可能是。你应该离开Riak。至少它是内部的。尤其是 Riak 为您提供了良好的稳定接口,可以从外部连接到它。
所以让我们这样做吧。我们将让您的 Riaks 节点运行,并编写另一个将与其“对话”的应用程序。为了说话,我们将使用来自 basho 本身的riak-erlang client。
第一步是使用rebar build tool 创建开发环境。闲散getting started guide
$ mkdir myapp
$ cd myapp
$ wget https://raw.github.com/wiki/rebar/rebar/rebar && chmod u+x rebar
$ rebar create-app appid=myapp
您现在拥有的其他文件很少,src 文件夹可以(并且将)放置您的自定义模块。您可以使用./rebar compile 命令检查它是否编译。所有编译后的文件都将位于bin 文件夹中(与src 相同级别)并且将具有.beam 扩展名(就像java 具有.java)。
接下来我们需要的是 accual 库。我们需要riakc_pb_socket.beam 来运行来自riakc_pb_socket 模块的任何东西。最简单的方法是下载源代码并编译它们。这很容易,因为我们使用钢筋来建造东西。
我们将创建rebar.config 文件并使用依赖项填充它
{deps, [{ riakc, ".*" ,
{git, "https://github.com/basho/riak-erlang-client.git", {branch, "1."}}}
]}.
并使用
下载并编译它们
$ ./rebar get-deps compile
现在您应该能够启动新的 Erlang VM,为其命名,添加二进制文件的路径(来自自定义模块和依赖项)并从 shell 运行您的代码。
$ erl -sname myapp -pa ebin -pa deps/*/ebin
(myapp@localhost) 1> custom_module:riakConnect().
应该会过去的。
如果您只想直接从系统控制台运行一些代码,请查看 erl -run 或 escript。
这应该会让你继续前进。