삽질/개발,엔지니어링

centos 7에 마인크래프트 베드락 서버 설치

maengis 2022. 6. 16. 11:49

https://www.minecraft.net/en-us/download/server/bedrock

 

해당 페이지 가서 다운로드 링크를 확인 후 서버에 wget으로 받음.

# wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.19.1.01.zip
--2022-06-14 21:16:34--  https://minecraft.azureedge.net/bin-linux/bedrock-server-1.19.1.01.zip
Resolving minecraft.azureedge.net (minecraft.azureedge.net)... 119.207.64.128, 119.207.64.97, 2600:1410:3000::17d8:9f82, ...
Connecting to minecraft.azureedge.net (minecraft.azureedge.net)|119.207.64.128|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 72201104 (69M) [application/octet-stream]
Saving to: ‘bedrock-server-1.19.1.01.zip’

100%[========================================================================================================================================================================>] 72,201,104  58.8MB/s   in 1.2s

2022-06-14 21:16:35 (58.8 MB/s) - ‘bedrock-server-1.19.1.01.zip’ saved [72201104/72201104]

압축을 풀고 실행

# unzip bedrock-server-1.19.1.01.zip

centos7에는 필요한 라이브러리들이 버전이 낮아서 실행이 안 됨.

LD_LIBRARY_PATH=. /마크서버경로/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.21' 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 `CXXABI_1.3.11' not found (required by ./bedrock_server)
./bedrock_server: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by ./bedrock_server)

확인해보면 실제로 위에 나오는 것들이 없음.

# strings /usr/lib64/libstdc++.so.6 | grep CXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1
GLIBCXX_DEBUG_MESSAGE_LENGTH

필요한 라이브러리만 구하면 되겠다는 생각으로 gcc를 따로 받아서 설치 후 링크를 변경함.

yum install gmp-devel mpfr-devel libmpc-devel
wget https://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz
tar xf gcc-8.3.0.tar.gz 
./configure --enable-languages=c,c++ --disable-multilib
sudo make -j 10 && sudo make install



[root@maengis lib64]# ll libstdc++.so.6
lrwxrwxrwx 1 root root 19  2월 10  2021 libstdc++.so.6 -> libstdc++.so.6.0.19

ln -si /home/app/gcc-8.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6

위 작업으로 libm.so.6에 GLIBC_2.27 없다는 오류 빼고는 다 해결.

 

glibc-2.27도 받아서 컴파일

wget https://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.gz
tar zxvf glibc-2.27.tar.gz
cd glibc-2.27
mkdir build
cd build
../configure --prefix=/usr/local/glibc-2.27
make -j4
sudo make install

위처럼 하면 됐어야 하는데, configure에서 compiler가 없거나 너무 오래 됐다고 나옴.

라이브러리만 필요해서 올린 거라 그런가 싶어서 아래 방법으로 gcc 버전을 올린 뒤, 다시 컴파일 하니 잘 됨.

yum install centos-release-scl
sudo yum-config-manager --enable rhel-server-rhscl-7-rpms
sudo yum install devtoolset-8
scl enable devtoolset-8 bash

이렇게 하고 아래 커맨드로 링크 변경하면 (하면 안 됨!)

ln -si /home/app/glibc-2.27/build/math/libm.so.6 /usr/lib64/libm.so.6

이후 잘 실행...은 되는데 su 치면

$ su
세그멘테이션 오류

이렇게 됨... ㅠㅠ...

glibc 때문이라는 게 확실한 거 같아서 /usr/lib64/libm.so.6는 원래 링크로 변경 해주고

ln -si /home/app/glibc-2.27/build/math/libm.so.6 /마크서버경로/libm.so.6

여기로 링크 생성해주고

LD_LIBRARY_PATH=/마크서버경로 /마크서버경로/bedrock_server

이후 su, sudo 해도 세그먼테이션 오류 안남. ^___^

혹시 이거 보고 따라하실 분은 libstdc.so.6랑 libm.so.6 둘 다 마크 베드락 서버에서만 쓰게 하시는 걸 추천.

별 생각 없이 그냥 올렸다가 서버에 구동 중인 다른 앱들 잘 되길래 그런갑다 했다가... 허허

반응형