QxMO的空间

用Linux开MCDR服务器

前:

作为一个服务器的物理腐竹(尼哥运维),我们要追求最高效的服务器管理方式,这样一个程序,极大的满足了我们的需求

MCDReforged是由Fallen-Breath开发的程序,他是一个额外于服务端运行的服务端管理工具,对于我们生电人来说,这就是给fabric端装上了插件(确信)

其相较于其他的管理工具我觉得最大的优势是,它可以对服务器进行热操作,因为他额外于服务端运行,所以即使服务端开启或stop,他任然可以对服务端进行操作(比如备份)

这篇文章来自这个视频


WARNING:

  • 1.本篇基于Ubantu系统(版本号22.04)诞生,同系的系统也适用,Cent OS及其衍生系统可照猫画虎,但代码可能不同,建议上网搜索

  • 2.本篇极具时效性,请视生产日期食用,不要等到十几年后还拿着这篇文章来找我说“xxx,为什么你这里不对的欸?”

  • 3.本篇不可能解决所有问题,作为一个现代高级灵长类动物,请灵活处事

  • 4.在你能完全学懂1+1等于几之前,请不要去思考如何解三角函数

  • 5.改掉你在Windows系统上的各种坏毛病,比如,随手按下Ctrl+v(会出事的)

  • 6.如果你需要更高级的玩法,你需要去阅读Fallen-Breath的MCDR文档


安装Python

由于MCDR是基于Python编写的程序,所以第一步我们首先需要安装Python环境

当然,我们可以看到MCDR的GitHub主页这里写明了可以支持到Python的最新版,不过很可惜ubantu的apt里面没有最新版的python

不过我们可以通过ppa导入,这里用到的是由第三方维护的deadsnakes ppa,他是一个由社区维护的第三方Python仓库

首先第一步,我们需要把apt更新到最新

sudo apt update         #更新软件包列表
sudo apt upgrade       #升级软件包

然后通过以下指令导入ppa,如果停下按enter继续

sudo add-apt-repository ppa:deadsnakes/ppa

接下来也许你会遇到这种一个框一堆字的画面(如图)

ff0fc7728cb283dfb46eb1658849690d_w638_h486_s54-iHyM.jpeg

事实上他就是问你需要什么额外的自定义操作,别管他,什么都别动,回车就完了

当导入结束的时候我们需要刷新一次apt(其实就是又更新一遍apt)

sudo apt update

这时候Python就已经被导入到apt中了,我们就可以尝试使用apt安装Python了

sudo apt install python3.12

安装完成时候我们可以通过以下指令验证安装是否成功

python3.12 --version

然后我们可以安装Python的附加模块,当然,这一步选做

sudo apt install python3.12-full

p.s.最好跟着我来

当这一切都搞定的时候,我们需要解决一下python指向的问题

我们可以试一下以下三条指令

python --version
python3 --version
python3.12 --version

你会发现它们三条指令会输出不同的结果,py --version可能输出一个py2.x或者无,py3 --v可能输出一个3.10.x,py3.12 --v可能输出一个py3.12.x

这显然都是python的指向不同导致的,这有可能影响到后面指令识别的问题,解决这个问题最简单的方法当然是移除不需要的py版本,当然,我们也可以尝试更改指令的导向(软连接)问题来解决

输入这条指令,我们可以尝试查看指令的导向

ls -l /usr/bin | grep python

我们可以看到(以图为例),py3被指向3.10,py3.12被指向3.12,因为系统没有安装py2.x,所以没有py的指向

e932dc3818cdd874e51c5ec113a261b6_w639_h200_s50-eBcf.jpeg

我们尝试用这条指令来删除py指令的软连接

sudo rm /usr/bin/python

然后用这条指令创建新的软连接,将其指向py3.12

sudo ln -s /usr/bin/python3.12 /usr/bin/python

然后用这条指令来删除py3指令的软连接

sudo rm /usr/bin/python3

然后用这条指令来创建新的软链接,将其指向py3.12

sudo ln -s /usr/bin/python3.12 /usr/bin/python3

然后我们再尝试这三条指令

python --version
python3 --version
python3.12 --version

如果他们的输出都是指向了3.12.x,那么py的安装就到此成功了,我们进入下一个步骤


安装pip

pip 是 Python 的包管理工具,用于安装和管理 Python 包。 

如要安装pip,我们可以尝试使用ensurepip模块,这是一个本身就处在python中的模块,正常来说在安装python时候,这个模块也会顺带运行,帮助我们自动安装pip,因为我们是手动安装,所以他并没有运行,不过我们可以通过以下指令来手动运行这个模块

python -m ensurepip --upgrade

当这个模块运行完成时候我们再尝试以下指令

pip --version

可以看到输出的内容为pip的版本

然后我们需要以下指令来更新pip到最新版本

python -m pip install --upgrade pip

再尝试以下指令

pip --version

我们需要确定的是,pip的版本号最后指向的是我们修改的py3.12,否则即为安装失败,请回到前面检查你的软连接是否修改成功

870dbd33a305f7bc1d47cb6b98f19c29_w782_h62_s19-Ltup.jpeg

安装MCDR

MCDR是一个程序,所以当然是“安装”咯

他的安装也不难,Fallen早就把MCDR上传到了pip中,我们可以在上面下载安装MCDR

再次之前请再次确定你的pip版本是否为最新(否则可能安装不到最新版的MCDR),再确定你的pip是否指向你安装的最新版py

我们可以使用这条指令安装MCDR

pip install mcdreforged

如果你的网络不好,安装失败你可以尝试这条指令安装MCDR,这条指令指定了安装的镜像源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mcdreforged

配置MCDR

首先我们需要在你原服务端的上级文件夹新建一个文件夹,或者在你服务器放置的位置新建文件夹,你可以使用SFTP来创建这个文件夹,也可以使用这条指令创建文件夹

然后,我们需要cd进入这个文件夹

使用这条指令加载MCDR的初始文件

python -m mcdreforged init

当MCDR的初始文件导入成功时候,我们就可以对其进行配置了

1、首先我们需要将原服务端的配置文件全部copy到这里的server文件夹中,请注意,server的下级应该就是服务端的所有文件

2、用记事本或者任意文本编辑软件打开config.yml,这里进行编辑,第一步,首先修改MCDR的语言为zh_cn;第二步,在start_command这里删去原有的内容,将其改为你服务端的启动命令,或者是原本就在服务端内的start.sh,然后保存并退出(就好像图一变图二)

fae655e8179fbf614bee095062cf8b51_w917_h607_s84-VknG.jpeg

3.用记事本或者任意文本编辑软件打开permission.yml,在此处可以对成员的MCDR使用权限进行管理,其中owner为最高权限,默认的成员加入时候为user权限(这个可以修改),接下来我们将我们的ID加入到owner中,在owner的冒号后面回车然后输入- <ID>,注意,短杠和ID之间有一个空格!!!接着保存并退出

8a33c2bbea2443674e371dcbd32af057_w759_h408_s35-jKsz.jpeg

接下来我们可以尝试使用以下指令开启服务器(开启需要约20秒时间,请耐心等待)

python -m mcdreforged

当出现done字样时候,我们的服务器就开启成功了,我们尝试进入服务器中在聊天框中输入以下指令

!!MCDR status

如果回复你的是这些信息,那么恭喜你,开服成功


注意事项:

1、网络上的教程或许会让你上传Github上下载的包,但实际上并不需要,那个包就是MCDR源文件,也就是MCDR本体,实际上是供予开发者使用的,我们所需要做的只有从pip上下载下来使用(我就因为做教程没认真看文档,教人从GitHub上下载源文件被原作者跑来说。。。)

2、如果你不想每次开启服务器都要输入一遍启动指令,那么你可以这样做

在MCDR服务端的同级文件夹下创建一个文本文档,其中输入MCDR的启动指令,然后保存并退出,将文件名更名为start.sh,给予文件权限,之后你就可以通过运行这个文件来开启服务器了

3、乱码问题,参见这张远古包浆图

至此,你成功开启MCDR服务器了,祝你玩的开心

(求支持)

这个文章也是两年前了,发在爱发电上但是没有通过认证所以从来没有人看过,搬过来顶顶牌面吧

这里说件窝在心底的事情吧,没有职责任何人的事情,当初这个视频费劲我的心思做了出来,然后被原作者刷到这个视频了,很明显的一个错误,我没有看warning,用了源文件来做,被原作者“阴阳”了几次,说实话原作者一直都是我的偶像,但是这么被原作者来这么几下,心里其实难过了几个月不止,只能说我笨吧,谁叫我没认真搞呢