无法启用 muc_size 韵律插件

Posted

技术标签:

【中文标题】无法启用 muc_size 韵律插件【英文标题】:Unable to enable muc_size prosody plugin 【发布时间】:2021-03-08 01:58:53 【问题描述】:

Community forum topic link

收到帖子中提到的类似错误。 Error while installing luajwtjitsi

我已启用 muc_size 插件。然后我重启了prosody和jicofo服务器。

systemctl restart prosody && systemctl restart jicofo

我得到错误模块未找到。所以我就这么做了。

安装 luarocks luarocks 安装网络地址

我再次重新加载韵律和 jicofo 然后我找不到basexx。

luarocks 安装 basexx

现在,我又遇到了错误(未找到 luajwtjitsi 模块)。所以我尝试用 luarocks 安装它

luarocks 安装 luajwtjitsi

我收到错误消息:

Installing https://luarocks.org/luajwtjitsi-1.3-7.rockspec
Missing dependencies for luajwtjitsi 1.3-7:
   luacrypto >= 0.3.2-1 (not installed)
   lua-cjson >= 2.1.0 (not installed)
   lbase64 >= 20120807-3 (not installed)

luajwtjitsi 1.3-7 depends on luacrypto >= 0.3.2-1 (not installed)
Installing https://luarocks.org/luacrypto-0.3.2-2.src.rock

Error: Failed installing dependency: https://luarocks.org/luacrypto-0.3.2-2.src.rock - Could not find header file for OPENSSL
  No file openssl/evp.h in /usr/local/include
  No file openssl/evp.h in /usr/include
You may have to install OPENSSL in your system and/or pass OPENSSL_DIR or OPENSSL_INCDIR to the luarocks command.
Example: luarocks install luacrypto OPENSSL_DIR=/usr/local

所以我这样做了:

apt install libssl-dev

所以,我得到了错误提示“lua.h”未找到,但已经安装了 lua5.2。在论坛上关注答案后。

安装 liblua5.2-dev 它同时安装了 liblua5.2-dev 和 liblua5.2-0

现在我在安装 luajwtjitsi 时遇到以下错误。

Installing https://luarocks.org/luajwtjitsi-1.3-7.rockspec
Missing dependencies for luajwtjitsi 1.3-7:
   luacrypto >= 0.3.2-1 (not installed)
   lua-cjson >= 2.1.0 (not installed)
   lbase64 >= 20120807-3 (not installed)

luajwtjitsi 1.3-7 depends on luacrypto >= 0.3.2-1 (not installed)
Installing https://luarocks.org/luacrypto-0.3.2-2.src.rock
gcc -O2 -fPIC -I/usr/include/lua5.2 -c src/lcrypto.c -o src/lcrypto.o -I/usr/include
src/lcrypto.c: In function ‘digest_pnew’:
src/lcrypto.c:81:61: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_MD_CTX’ aka ‘struct evp_md_ctx_st’
   81 |     EVP_MD_CTX *c = (EVP_MD_CTX *)lua_newuserdata(L, sizeof(EVP_MD_CTX));
  |                                                             ^~~~~~~~~~
src/lcrypto.c: In function ‘digest_reset’:
src/lcrypto.c:120:10: warning: implicit declaration of function ‘EVP_MD_CTX_cleanup’; did you mean ‘EVP_MD_CTX_create’? [-Wimplicit-function-declaration]
  120 |     if (!EVP_MD_CTX_cleanup(c))
  |          ^~~~~~~~~~~~~~~~~~
  |          EVP_MD_CTX_create
src/lcrypto.c: In function ‘encrypt_pnew’:
src/lcrypto.c:331:69: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_CIPHER_CTX’ aka ‘struct evp_cipher_ctx_st’
  331 |     EVP_CIPHER_CTX *c = (EVP_CIPHER_CTX *)lua_newuserdata(L, sizeof(EVP_CIPHER_CTX));
  |                                                                     ^~~~~~~~~~~~~~
src/lcrypto.c: In function ‘encrypt_fencrypt’:
src/lcrypto.c:425:20: error: storage size of ‘c’ isn’t known
  425 |     EVP_CIPHER_CTX c;
  |                    ^
src/lcrypto.c: In function ‘decrypt_pnew’:
src/lcrypto.c:470:69: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_CIPHER_CTX’ aka ‘struct evp_cipher_ctx_st’
  470 |     EVP_CIPHER_CTX *c = (EVP_CIPHER_CTX *)lua_newuserdata(L, sizeof(EVP_CIPHER_CTX));
  |                                                                     ^~~~~~~~~~~~~~
src/lcrypto.c: In function ‘decrypt_fdecrypt’:
src/lcrypto.c:561:20: error: storage size of ‘c’ isn’t known
  561 |     EVP_CIPHER_CTX c;
  |                    ^
src/lcrypto.c: In function ‘hmac_pnew’:
src/lcrypto.c:604:57: error: invalid application of ‘sizeof’ to incomplete type ‘HMAC_CTX’ aka ‘struct hmac_ctx_st’
  604 |     HMAC_CTX *c = (HMAC_CTX *)lua_newuserdata(L, sizeof(HMAC_CTX));
  |                                                         ^~~~~~~~
src/lcrypto.c: In function ‘hmac_fnew’:
src/lcrypto.c:621:5: warning: implicit declaration of function ‘HMAC_CTX_init’; did you mean ‘HMAC_CTX_new’? [-Wimplicit-function-declaration]
  621 |     HMAC_CTX_init(c);
  |     ^~~~~~~~~~~~~
  |     HMAC_CTX_new
src/lcrypto.c: In function ‘hmac_clone’:
src/lcrypto.c:631:5: error: dereferencing pointer to incomplete type ‘HMAC_CTX’ aka ‘struct hmac_ctx_st’
  631 |     *d = *c;
  |     ^~
src/lcrypto.c: In function ‘hmac_gc’:
src/lcrypto.c:697:5: warning: implicit declaration of function ‘HMAC_CTX_cleanup’ [-Wimplicit-function-declaration]
  697 |     HMAC_CTX_cleanup(c);
  |     ^~~~~~~~~~~~~~~~
src/lcrypto.c: In function ‘hmac_fdigest’:
src/lcrypto.c:711:14: error: storage size of ‘c’ isn’t known
  711 |     HMAC_CTX c;
  |              ^
src/lcrypto.c: In function ‘sign_pnew’:
src/lcrypto.c:747:61: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_MD_CTX’ aka ‘struct evp_md_ctx_st’
  747 |     EVP_MD_CTX *c = (EVP_MD_CTX *)lua_newuserdata(L, sizeof(EVP_MD_CTX));
  |                                                             ^~~~~~~~~~
src/lcrypto.c: In function ‘sign_fsign’:
src/lcrypto.c:828:20: error: storage size of ‘c’ isn’t known
  828 |         EVP_MD_CTX c;
  |                    ^
src/lcrypto.c: In function ‘verify_pnew’:
src/lcrypto.c:857:61: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_MD_CTX’ aka ‘struct evp_md_ctx_st’
  857 |     EVP_MD_CTX *c = (EVP_MD_CTX *)lua_newuserdata(L, sizeof(EVP_MD_CTX));
  |                                                             ^~~~~~~~~~
src/lcrypto.c: In function ‘verify_fverify’:
src/lcrypto.c:940:20: error: storage size of ‘c’ isn’t known
  940 |         EVP_MD_CTX c;
  |                    ^
src/lcrypto.c: In function ‘rand_pseudo_bytes’:
src/lcrypto.c:992:5: warning: ‘RAND_pseudo_bytes’ is deprecated [-Wdeprecated-declarations]
  992 |     return rand_do_bytes(L, RAND_pseudo_bytes);
  |     ^~~~~~
In file included from /usr/include/openssl/e_os2.h:13,
             from /usr/include/openssl/err.h:13,
             from src/lcrypto.c:7:
/usr/include/openssl/rand.h:44:1: note: declared here
   44 | DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num))
  | ^~~~~~~~~~~~~~~~~~
src/lcrypto.c: In function ‘pkey_generate’:
src/lcrypto.c:1064:9: warning: ‘RSA_generate_key’ is deprecated [-Wdeprecated-declarations]
 1064 |         RSA *rsa = RSA_generate_key(key_len, RSA_F4, NULL, NULL);
  |         ^~~
In file included from /usr/include/openssl/e_os2.h:13,
             from /usr/include/openssl/err.h:13,
             from src/lcrypto.c:7:
/usr/include/openssl/rsa.h:235:1: note: declared here
  235 | DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
  | ^~~~~~~~~~~~~~~~~~
src/lcrypto.c:1074:9: warning: ‘DSA_generate_parameters’ is deprecated [-Wdeprecated-declarations]
 1074 |         DSA *dsa = DSA_generate_parameters(key_len, NULL, 0, NULL, NULL, NULL, NULL);
  |         ^~~
In file included from /usr/include/openssl/e_os2.h:13,
             from /usr/include/openssl/err.h:13,
             from src/lcrypto.c:7:
/usr/include/openssl/dsa.h:117:1: note: declared here
  117 | DEPRECATEDIN_0_9_8(DSA *DSA_generate_parameters(int bits,
  | ^~~~~~~~~~~~~~~~~~
src/lcrypto.c: In function ‘pkey_to_pem’:
src/lcrypto.c:1164:27: error: dereferencing pointer to incomplete type ‘struct evp_pkey_st’
 1164 |     if (private && pkey_st->type == EVP_PKEY_DSA)
  |                           ^~
src/lcrypto.c: In function ‘pkey_tostring’:
src/lcrypto.c:1277:60: error: dereferencing pointer to incomplete type ‘EVP_PKEY’ aka ‘struct evp_pkey_st’
 1277 |     sprintf(buf, "%s %s %d %p", LUACRYPTO_PKEYNAME, (*pkey)->type == EVP_PKEY_DSA ? "DSA" : "RSA", EVP_PKEY_bits(*pkey), pkey);
  |                                                            ^~
src/lcrypto.c: In function ‘seal_pnew’:
src/lcrypto.c:1299:46: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_CIPHER_CTX’ aka ‘struct evp_cipher_ctx_st’
 1299 |     c->ctx = (EVP_CIPHER_CTX *)malloc(sizeof(EVP_CIPHER_CTX));
  |                                              ^~~~~~~~~~~~~~
In file included from src/lcrypto.c:8:
src/lcrypto.c: In function ‘seal_tostring’:
src/lcrypto.c:1320:81: error: dereferencing pointer to incomplete type ‘EVP_CIPHER_CTX’ aka ‘struct evp_cipher_ctx_st’
 1320 |     sprintf(s, "%s %p %s", LUACRYPTO_SEALNAME, (void *)c, EVP_CIPHER_name(c->ctx->cipher));
  |                                                                                 ^~
src/lcrypto.c: In function ‘seal_fseal’:
src/lcrypto.c:1400:20: error: storage size of ‘ctx’ isn’t known
 1400 |     EVP_CIPHER_CTX ctx;
  |                    ^~~
src/lcrypto.c: In function ‘open_pnew’:
src/lcrypto.c:1483:46: error: invalid application of ‘sizeof’ to incomplete type ‘EVP_CIPHER_CTX’ aka ‘struct evp_cipher_ctx_st’
 1483 |     c->ctx = (EVP_CIPHER_CTX *)malloc(sizeof(EVP_CIPHER_CTX));
  |                                              ^~~~~~~~~~~~~~
src/lcrypto.c: In function ‘open_fopen’:
src/lcrypto.c:1602:20: error: storage size of ‘ctx’ isn’t known
 1602 |     EVP_CIPHER_CTX ctx;
  |                    ^~~

Error: Failed installing dependency: https://luarocks.org/luacrypto-0.3.2-2.src.rock - Build error: Failed compiling object src/lcrypto.o

现在,如何进一步使其发挥作用。

【问题讨论】:

【参考方案1】:

以下解决方案对我有用:

sudo apt-get install libssl1.0-dev

Reference

【讨论】:

以上是关于无法启用 muc_size 韵律插件的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Kong 中启用会话插件(即使升级到最新版本)

求助:hmailserver+roundcube启用密码插件后,用户无法修改密码问题

如何在我的 Docker 自托管 Jitsi 服务器中为我的 Android 应用程序实现 jwt 令牌韵律插件?

WordPress头像无法显示怎么办

Postman Interceptor安装成功却无法在Postman启用的解决办法

启用系统防火墙后无法登录 xmpp 聊天服务器