这篇文章介绍一下Linux系统下自行搭建Minecraft基岩版服务器的步骤。

1.先从官方服务器下载地址下载UBUNTU 服务器软件。

2.对于Ubuntu发行版,直接使用LD_LIBRARY_PATH=. ./bedrock_server命令进行开服即可;而对于其他发行版系统,因为缺少一些必需库,所以需要进一步配置库文件才能开服,本文以centOs系统为例。

3.使用screen部署。

以下是详细步骤。

准备服务器文件

首先进入官方服务器下载地址下载UBUNTU 服务器软件。

image-20220324150856644

将下载的zip文件上传至服务器,并在想要的位置解压

1
unzip  bedrock-server-1.18.12.01.zip

开启服务器

在此目录直接使用LD_LIBRARY_PATH=. ./bedrock_server命令即可开服。

为了方便,可以创建一个.bat文件来执行这项命令。

1
vi run.sh

在文件中写入LD_LIBRARY_PATH=. ./bedrock_server,然后保存。

然后赋权运行即可。

1
2
chmod 777 run.sh //赋权
./run.sh //开服

image-20220324155933707

如果你使用的是Ubuntu发行版,可直接跳转到第四点进行screen部署。如果像我一样是centOs发行版,则是需要配置一些必需库文件。

以centOs系统为例配置必需库文件

本文解决方式为手动编译这些文件,并非使用docker等其他解决方式。

在centOs系统上执行开服命令后,如果系统缺少库文件,则会出现以下情况:

1
2
3
4
5
6
7
8
9
10
./bedrock_server: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
...
./bedrock_server: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by ./bedrock_server)
./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./bedrock_server)
./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./bedrock_server)
./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./bedrock_server)
./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./libCrypto.so)
./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./libCrypto.so)
...
./bedrock_server: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by ./bedrock_server)

这是缺少了以下三个文件:openssl(libssl.so.1.1)GCC 9.1.0+(GLIBCXX_3.4.20,GLIBCXX_3.4.21,GLIBCXX_3.4.22)glibc(libm.so.6)

因为每个人的配置不尽相同,你也可能只缺少其中的某几个文件,根据所缺文件来查阅步骤即可。

安装openssl(libssl.so.1.1)

编译准备

1
2
yum install gcc perl zlib-devel
cd ~

下载源码

1
2
3
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz
tar zxvf openssl-1.1.1c.tar.gz -C /usr/local/src/
cd /usr/local/src/openssl-1.1.1c

配置编译

1
2
3
 ./config --prefix=/usr/local/openssl shared zlib
make
make install

库更新

1
2
cd /etc/ld.so.conf.d/
vi openssl-1.1.1.conf

写入:/usr/local/openssl/lib

保存并执行

1
ldconfig

使用以下命令检查是否成功:

1
ldconfig -p  | grep libssl

出现以下内容代表成功“

image-20220324153800572

安装GCC 9.1.0+

编译准备:

1
yum install gcc-c++ bzip2

源码准备:

1
2
3
4
cd ~
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz //下载源码
tar zxvf gcc-9.1.0.tar.gz -C /usr/local/src/
cd /usr/local/src/gcc-9.1.0/

换源下载前置软件

在gcc源码目录下执行

1
vi ./contrib/download_prerequisites

找到base_url,将后面链接改为http://ftp.tsukuba.wide.ad.jp/software/gcc/infrastructure/

保存后执行以下命令自动下载

1
./contrib/download_prerequisites --force

下载完成后开始准备编译

1
2
3
4
mkdir build
cd build/
../configure –enable-languages=c,c++ --prefix=/usr/local –disable-bootstrap –disable-multilib
make

这一步编译过程需要很久(笔者花了约半小时)。

完成后安装

1
make install

库更新:

1
2
cd /etc/ld.so.conf.d/
vi gcc-9.1.0.conf

添加文字

1
/usr/local/lib64

保存,执行

1
ldconfig

执行

1
ldconfig -p | grep libstdc++.so.6

看到以下内容代表成功。

image-20220324154708775

可使用以下代码验证安装的GLIBCXX_xxx库文件:

1
strings /usr/local/lib64/libstdc++.so.6 | grep ^GLIBCXX_3.4.2 | sort | uniq

image-20220324154915805

安装glibc(libm.so.6)

*编译准备:*

1
yum install bison

**然后升级make到4.+**(这里原文说需要升级python版本,经我实测发现并不需要):

1
2
3
4
5
6
7
cd ~
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/make/make-4.3.tar.gz
tar zxvf make-4.3.tar.gz –C /usr/local/src
cd /usr/local/src/make-4.3
./configure --prefix=/usr/local/make-4.3
make
make install

替换make

1
2
3
4
mv /usr/bin/make /usr/bin/make-3.82
update-alternatives --install /usr/bin/make make /usr/bin/make-3.82 1
update-alternatives --install /usr/bin/make make /usr/local/make-4.3/bin/make 2
update-alternatives --config make

此处选择2

下载源码

1
2
3
4
5
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/glibc/glibc-2.31.tar.gz 
tar xzfv glibc-2.31.tar.gz -C /usr/local/src
cd /usr/local/src/glibc-2.31
mkdir build
cd build

*配置编译:*

1
2
3
../configure --prefix=/usr/glibc-2.31
make
make install

完成后进入到服务器文件存放的目录下进行以下操作:

1
cp -p /usr/glibc-2.31/lib/libm.so.6 .  //引用库

若以上操作无误则配置库文件便结束了,就可正常执行开服命令啦。

screen部署

首先安装screen:

1
yum install screen

创建一个screen窗口:

1
screen -S mc //新建一个叫做mc的screen窗口

进入服务器根目录运行即可:

1
2
cd mc //服务器根目录
./run.bat //LD_LIBRARY_PATH=. ./bedrock_server

如果要结束运行,直接ctrl + c便可。

从screen返回终端命令是 ctrl A + D或者exit;从终端到已有的screen窗口命令是 screen -r mc

参考文章

如何在CentOS7上原生运行Minecraft Bedrock服务器并结合Multicraft管理 - 知乎 (zhihu.com)