【问题标题】:Cannot install any ejabberd contrib module无法安装任何 ejabberd contrib 模块
【发布时间】:2021-01-03 03:19:34
【问题描述】:

我正在尝试安装 ejabberd-contrib 模块。使用这个guide

但是,当我运行 ejabberdctl modules_update_specs 时,没有返回任何内容。

当我尝试安装任何单个模块时:

ejabberdctl module_install mod_pottymouth

 Failed RPC connection to the node ejabberd@localhost: {'EXIT',
                                                       {undef,
[{bitarray,new,
  [16777216,false],
  []},
 {etbloom,
  '-bloom/3-lc$^0/1-0-',
  2,
  [{file,
    "/var/lib/ejabberd/.ejabberd-modules/sources/ejabberd-contrib/mod_pottymouth/deps/etbloom/src/etbloom.erl"},
   {line,77}]},
 {etbloom,bloom,3,
  [{file,
    "/var/lib/ejabberd/.ejabberd-modules/sources/ejabberd-contrib/mod_pottymouth/deps/etbloom/src/etbloom.erl"},
   {line,77}]},
 {etbloom,sbf,4,
  [{file,
    "/var/lib/ejabberd/.ejabberd-modules/sources/ejabberd-contrib/mod_pottymouth/deps/etbloom/src/etbloom.erl"},
   {line,98}]},
 {bloom_gen_server,
  init,1,
  [{file,
    "/var/lib/ejabberd/.ejabberd-modules/sources/ejabberd-contrib/mod_pottymouth/src/bloom_gen_server.erl"},
   {line,28}]},
 {gen_server,init_it,
  2,
  [{file,
    "gen_server.erl"},
   {line,374}]},
 {gen_server,init_it,
  6,
  [{file,
    "gen_server.erl"},
   {line,342}]},
 {proc_lib,
  init_p_do_apply,3,
  [{file,
    "proc_lib.erl"},
   {line,249}]}]}}
Commands to start an ejabberd node:
  start      Start an ejabberd node in server mode
  debug      Attach an interactive Erlang shell to a running ejabberd node
  iexdebug   Attach an interactive Elixir shell to a running ejabberd node
  live       Start an ejabberd node in live (interactive) mode
  iexlive    Start an ejabberd node in live (interactive) mode, within an Elixir shell
  foreground Start an ejabberd node in server mode (attached)


ejabberdctl status
The node ejabberd@localhost is started with status: started

我该如何解决这个问题?

【问题讨论】:

  • 嗨@Milkyway,你能成功安装这个模块吗?我遵循了link 中的确切步骤。但是在./rebar compile 它给了我这个错误/usr/bin/ld: cannot find -lerl_interface collect2: error: ld returned 1 exit status ERROR: cc c_src/bitarray_nif.o $LDFLAGS -shared -L/usr/lib/erlang/lib/erl_interface-4.0.1/lib -lerl_interface -lei -o priv/bitarray.so failed with error: 1 and output: /usr/bin/ld: cannot find -lerl_interface

标签: ejabberd ejabberd-module


【解决方案1】:

但是,当我运行 ejabberdctl modules_update_specs 时,没有返回任何内容。

那么它可能工作正常,否则它会返回一些错误,并且echo会返回1。它工作正常并创建路径的示例:

$ ejabberdctl modules_update_specs

$ echo $?
0

$ ls $HOME/.ejabberd-modules/
sources

当我尝试安装任何单个模块时:

安装任何模块都会产生错误?例如,如果您尝试安装 mod_rest,它会起作用吗?请注意,这会报告有关文档的警告,这并不重要:

$ ejabberdctl module_install mod_rest
/home/badlop/.ejabberd-modules/sources/ejabberd-contrib/mod_rest/src/mod_rest.erl:27: Warning: undefined callback function mod_doc/0 (behaviour 'gen_mod')

$ ls $HOME/.ejabberd-modules/
mod_rest  sources

{'EXIT', {undef, [{bitarray,new,

是的,这是安装mod_pottymouth 时的一个已知问题。该模块的README.txt 文件中描述了安装该模块的解决方法。我现在已经按照这些说明进行操作,并且正确编译和安装了模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-29
    • 2018-06-15
    • 1970-01-01
    • 2018-04-17
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多