少女祈祷中...

友情提示:本篇内容的步骤只是回忆内容,只能作为大致参考,不一定准确,因为我没有再一次验证这些步骤的可行性。

下载mcl-installer

前往这里,找到对应的Linux版本的mcl-installer。
找到以后这里有两种可以将mcl-installer下载到服务器:一是先点击要下载的那个版本,然后会跳出下载链接和路径,不要点下载,直接复制链接用Linux的命令下载。二是直接下载到本地,然后上传到服务器。这里要提供一个路径,比如我在服务器上的路径就是/usr/qqbot。方法是先进入/usr目录,然后在该目录下创建一个名为”qqbot”的文件夹。

1
cd /usr
1
mkdir qqbot
1
cd qqbot

进入到qqbot文件夹后,再用命令行下载文件。记得把下面那一大串乱七八糟的字母改成你的具体链接。

1
wget ancieowhoeuheuiwod

安装

这一步其实我自己也不是很明白,当时也是捣鼓了一会儿。

以防万一,先切换到root权限。

1
su root

然后,给文件赋予权限,并且以防万一,给文件夹也赋个权限。
这里要注意,下面命令中的mcl-installer换成你qqbot文件夹下的那个带版本号的文件名。

1
2
3
chomd 777 /usr/qqbot

chomd 777 mcl-installer

接着就可以安装了。
这里也要记得补全文件名。

1
./mcl-installer

对于跳出来的所有询问一律按Enter键选择默认值就可以。
等一会儿当画面不再出现字的时候,输入以下命令。

1
/autoLogin add QQ账号 QQ密码

不会真有人就这么把QQ账号和QQ密码这几个字当成命令输入吧?
成功添加之后,输入stop,退出mcl。

配置相关文件

这一步比较复杂。
先到这里(提取码4900)下载需要的配置文件,下载到你的电脑磁盘里就行。
在服务器的qqbot文件夹下,有一个plugins文件夹,里面应该是空的。很巧,我给的资源其中有一个文件夹是plugins,将文件夹内的所有文件都上传到服务器的plugins文件夹内。然后,再把txlib.zip上传到服务器的qqbot文件夹下,然后解压。

1
unzip txlib.zip

如果上面的命令执行不成功,那是因为服务器没有解压zip的功能,去搜一下教程怎么让服务器解压zip就行。

然后你要去到[这里]继续看教程。注意!只看第三部分登录QQ和第四部分完成就行,前面的就不用看了。
如果中途出现了报错说什么code=45,QQ版本太低什么的,那就是你没把前面的plugins和txlib配置好。

到这一步还没完,你在使用./mcl启动时有可能显示”successfully”之后又出现报错并强制退出。
注意,这只是有可能,不是一定,没有事就不用看了。
大概是这么个样的报错?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SIGSEGV (0xb) at pc=0x00007fa6302e8b26, pid=140182, tid=140364
JRE version: OpenJDK Runtime Environment Temurin-17.0.9+9 (17.0.9+9) (build 17.0.9+9)
Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (17.0.9+9, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
Problematic frame:
C [libunicorn.so+0xe8b26] tb_find_fast_aarch64+0x7b
Core dump will be written. Default location: Core dumps may be processed with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e" (or dumping to /usr/qqbot/core.140182)
An error report file with more information is saved as:
/usr/qqbot/hs_err_pid140182.log
If you would like to submit a bug report, please visit:
https://github.com/adoptium/adoptium-support/issues
The crash happened outside the Java Virtual Machine in native code.
See problematic frame for where to report the bug.
./mcl: line 3: 140182 Aborted (core dumped) $JAVA_BINARY -jar mcl.jar $*

A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007feda97239f4, pid=159837, tid=160025
#
# JRE version: OpenJDK Runtime Environment Temurin-17.0.9+9 (17.0.9+9) (build 17.0.9+9)
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (17.0.9+9, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# C 0x00007feda97239f4
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e" (or dumping to /usr/qqbot/core.159837)
#
# An error report file with more information is saved as:
# /usr/qqbot/hs_err_pid159837.log
dynarmic assertion failed: !is_executingterminate called without an active exception
./mcl: line 3: 159837 Aborted (core dumped) $JAVA_BINARY -jar mcl.jar $*

看到这一大串是不是要崩溃了?明明前面每一步都没问题的。

进入txlib文件夹

1
cd txlib

这个文件夹内有一些版本,你看哪个文件夹内有stdin和stdout这两个文件,就进入到这个文件,我的是8.9.63。

1
cd 8.9.63

然后打开config.json

1
vi config.json

然后你就会进入一个很想记事本一样的界面,这其实是Vim,你可以理解为高级记事本。注意!如果你以前没有接触过Vim的编辑模式,那么你千万别轻举妄动,这里的操作和一般的记事本不太一样。

找到unidbg。一共就那么几行,应该很好找。可以看到花括号里面有dynarmic,unicorn,debug。并且unicorn是true,另外两个是false。你需要选择新的一个作为true,另外两个作为false。

在vim模式中,你要按下”i”或者”Insert”键进入编辑模式,然后进行修改,注意别用你那什么”Ctrl+C+V”,老老实实打true和false。改完之后,按下”Esc”,然后输入”:”,再输入”wq”,再按”Enter”。之后回到qqbot文件夹下,再启动mcl。

1
2
3
cd ../..

./mcl

如果还是出现像刚才一样的报错,就按刚才的操作再换一下true和false。如果都不行的话,那我也没辙了,你可以去这里求助。登录成功之后可以用另一个qq号给你这个作为机器人的qq发消息,验证一下确实成功了。

到这里就基本完成了,后续你想要什么插件也是去这里找,把下载的插件放到plugins文件夹下就可以了。

持续运行

等等,还不算完,因为这个时候如果你断开连接,你的QQ也就退了,我们需要让它在后台可以持续运行,一天24小时高强度运行。这里可以参考这篇博客的最后一部分。