首页 > 系统相关 >在Linux服务器上部署Mirai框架的QQ机器人

在Linux服务器上部署Mirai框架的QQ机器人

时间:2024-02-03 12:22:28浏览次数:26  
标签:QQ mcl Linux 17.0 文件夹 usr Mirai qqbot

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

下载mcl-installer

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

cd /usr
mkdir qqbot
cd qqbot

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

wget ancieowhoeuheuiwod

安装

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

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

su root

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

chomd 777 /usr/qqbot

chomd 777 mcl-installer

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

./mcl-installer

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

/autoLogin add QQ账号 QQ密码

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

配置相关文件

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

unzip txlib.zip

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

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

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

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文件夹

cd txlib

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

cd 8.9.63

然后打开config.json

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。

cd ../..

./mcl

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

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

持续运行

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

标签:QQ,mcl,Linux,17.0,文件夹,usr,Mirai,qqbot
From: https://www.cnblogs.com/luviichann/p/18004516

相关文章

  • linux目录误删文件 /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file
    背景接同事求助一台生产主机误删了文件导致几乎所有命令都无法使用,应用无法访问。误删命令rm-f/*现象除了cd命令可用,几乎所有的命令都报如下错误:lsbash:/usr/bin/ls:/lib64/ld-linux-x86-64.so.2:badELFinterpreter:Nosuchfileordirectory问题分析这个命令......
  • linux系统mysql卸载
    一、首先查看mysql的启动情况,如果显示在启动,则执行命令停止运行我这里本来就是已经停止运行的状态就不在启动了systemctlstatusmysqld执行命令停止mysql运行:systemctlstopmysqld二、查看mysql安装目录并删除包rpm-qa|grepmysql1、删除各个包,使用下述命令yumremove......
  • Windows远程连接Linux桌面
    Windows远程连接Linux桌面本文环境是基于Ubuntu22.0.4xrdpXrdp是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统。通过RDP,你可以登录远程机器,并且创建一个真实的桌面会话,就像你登录本地机器一样。安装xrdpsudoaptinstallxrdp查看安装情况,因安......
  • Linux基础47 Ansible之ad-hoc, 命令模块(command, shell, script), 软件管理模块(yum,
    Ansible之ad-hoc一、什么是ad-hoc1.什么是ad-hocad-hoc简而言之就是“临时命令”,执行完即结束,并不会保存2.ad-hoc使用场景可以用作查看远程机器的进程,或者磁盘,或者拷贝文件3.ad-hoc命令使用[root@m01~]#ansibleweb01-mshell-a'free-m'web01|CHANGED|rc=......
  • Linux运维笔记[14]-搭建内网docker镜像服务
    摘要使用docker-registry搭建内网镜像服务,平替DockerHub.原理简介docker-registry简介[https://juejin.cn/post/7214037206863495205]官方提供了DockerHub网站来作为一个公开的集中仓库,然而,本地访问DockerHub速度往往很慢,并且很多时候我们需要一个本地的私有仓库只供网内......
  • Linux——信号处理函数sigaction()
    sigaction()作用:设置某信号的信号处理函数1.sigaction()函数原型#include<signal.h>intsigaction( intsigno, conststructsigaction*restrictact, structsigaction*restrictoldact );12345signo:指定的信号,可以为除SIGKILL及SIGSTOP外的任何信号act:信号处理方式......
  • Linux批量转换图片文件(png/jpg)
    ImageMagick转换图片一、convert命令Version:ImageMagick6.9.11-60Q16x86_642021-01-25https://imagemagick.orgCopyright:(C)1999-2021ImageMagickStudioLLCLicense:https://imagemagick.org/script/license.phpFeatures:CipherDPCModulesOpenMP(4.5)Delega......
  • Linux进程通信-POSIX IPC
    前言LinuxPOSIXIPC的可移植性是不如SystemVIPC的,但是我们只用Linux,并且内核版本高于2.6.6的话就不存在该问题了。也因为POSIXIPC出现的比较晚,借鉴了systemVIPC的长处,规避其短处,使得POSIXIPC的接口更易用。进程间通信的手段很多,除了消息队列、信号量、共享内存,还有信号、so......
  • linux系统mysql下载安装(二进制下载)
    最近在重新学习测试的基础知识,刚好学到数据库这一章,打算搭建一套linux系统上搭建mysql的服务端,简单做个记录,今天主要了解了二进制下载CentOs默认使用的软件包管理器是yum,我是用的是CentOs7,执行安装命令为:sudoyuminstallmysql-server,但是在安装的时候遇到问题,提示“没有可用软......
  • linux基础命令(三)
    •Linux命令–用来实现某一类功能的指令或程序执行大多数命令,都要找到相应的程序[root@localhost~]#ls/usr/bin/hostname/usr/bin/hostname#绿色可以执行的程序[root@localhost~]#–命令的执行依赖于解释器(默认解释器:/bin/bash)用户------->解释器--......