【问题标题】:ejabberdctl start result in error for p1_yamlejabberdctl start 导致 p1_yaml 出错
【发布时间】:2016-02-18 17:27:13
【问题描述】:

我正在尝试在我的服务器上配置 eJabberd

我完成了安装,但是当我尝试使用

启动 ejabberd
ejabberdctl start

它在日志文件中显示以下错误

2015-11-17 03:28:29.928 [info] <0.7.0> Application asn1 started on node ejabberd@localhost
2015-11-17 03:28:29.928 [info] <0.7.0> Application public_key started on node ejabberd@localhost
2015-11-17 03:28:29.941 [info] <0.7.0> Application ssl started on node ejabberd@localhost
2015-11-17 03:28:29.945 [warning] <0.100.0> unable to load p1_yaml NIF: {error,{load_failed,"Failed to load NIF library /lib/p1_yaml/priv/lib/p1_yaml: 'libyaml-0.so.2: cannot open shared object file: No such file or directory'"}}
2015-11-17 03:28:29.945 [error] <0.99.0> CRASH REPORT Process <0.99.0> with 0 neighbours exited with reason: {{load_failed,"Failed to load NIF library /lib/p1_yaml/priv/lib/p1_yaml: 'libyaml-0.so.2: cannot open shared object file: No such file or directory'"},{p1_yaml_app,start,[normal,[]]}} in application_master:init/4 line 134
2015-11-17 03:28:29.945 [info] <0.7.0> Application p1_yaml exited with reason: {{load_failed,"Failed to load NIF library /lib/p1_yaml/priv/lib/p1_yaml: 'libyaml-0.so.2: cannot open shared object file: No such file or directory'"},{p1_yaml_app,start,[normal,[]]}}
2015-11-17 03:28:29.947 [critical] <0.38.0>@ejabberd:exit_or_halt:133 failed to start application 'p1_yaml': {error,
                                        {{load_failed,
                                          "Failed to load NIF library /lib/p1_yaml/priv/lib/p1_yaml: 'libyaml-0.so.2: cannot open shared object file: No such file or directory'"},
                                         {p1_yaml_app,start,[normal,[]]}}}

作为参考,p1_yaml 文件位于以下目录:

root@ip-XX-XX-XX-XX [/lib/p1_yaml/priv/lib]# locate libyaml-0.so
/root/tmp/downloads/yaml-0.1.5/src/.libs/libyaml-0.so.2
/root/tmp/downloads/yaml-0.1.5/src/.libs/libyaml-0.so.2.0.3
/usr/local/lib/libyaml-0.so.2
/usr/local/lib/libyaml-0.so.2.0.3

我无法追踪问题。任何类型的参考都会非常有帮助。 提前致谢。

【问题讨论】:

  • 检查与您一起跑步的用户的/lib/p1_yaml/priv/lib/libyaml-0.so.2 的权限。
  • 抱歉文件路径,我试图在该位置手动复制文件。我已经更新了我的问题。此位置没有文件:/lib/p1_yaml/priv/lib/

标签: linux erlang xmpp yaml ejabberd


【解决方案1】:

检查/usr/local/lib/是否列在LD_LIBRARY_PATH中,如果没有加入,重启ejabberd

$ export LD_LIBRARY_PATH=/usr/local/lib

【讨论】:

  • 感谢您的回答,我重新安装了所有内容,包括您的解决方案。以下是我运行的命令序列:&gt; cd ejabberd-15.10 &gt; ./configure --enable-mysql &gt; export LDFLAGS="-L/usr/local/lib/" &gt; make &gt; make install 但仍然出现相同的错误。
  • 您能否将新终端会话中echo $LD_LIBRARY_PATH 的结果复制粘贴到此处,检查/usr/local/lib/ 是否在此处列出
  • 每次终端登录时,该值将显示为空白,并且在 export LD_LIBRARY_PATH=/usr/local/lib 运行命令之后。它将显示 /usr/local/lib/ 预期值。
  • 是的,如果我们将运行此导出命令,然后运行“ejabberdctl start”并检查“ejabberdctl status”而不是“无法为 temp_alloc /sbin/ejabberdctl 创建主载体:第 412 行:2177中止 $EXEC_CMD "$ERL $NAME ${CONN_NAME} -noinput -hidden -pa $EJABBERD_EBIN_PATH $KERNEL_OPTS -s ejabberd_ctl -extra $ERLANG_NODE $COMMAND"
  • 不明白,ejabberdctl start现在启动成功了吗?
猜你喜欢
  • 2013-09-09
  • 2018-09-19
  • 2021-11-11
  • 2022-11-04
  • 2021-08-01
  • 2019-01-25
  • 1970-01-01
  • 1970-01-01
  • 2015-11-24
相关资源
最近更新 更多