Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

(Minecraft)Linux環境下でMSMにForgeを導入する手順

Minecraftのサーバを管理するツールであるMSMに,MinecraftのMODに必要な共通ライブラリであるForgeをインストールし,Forge対応サーバを構築した記録です.

MSMとは

MSMとは,Minecraft Server Managerの略で, 一つのサーバマシンの下で複数のMinecraftサーバを動かすための管理ツールである. MSMがサーバの動作に必要なファイルを共通化することで,単純に複数個のMinecraftサーバを立ち上げるよりも,ストレージの使用容量が削減される.

MSMは便利なワールドバックアップ機能も備えている.

MSMをセットアップする

MSMのセットアップは難しくない.ここでは執筆時点で最新のMSM 0.9.3を使用する.

セットアップ手順は,公式インストールガイド(英語)を元にしている.

事前要件

  • cronがインストールされている
  • sudoが正しくセットアップされている

msmのインストール(Ubuntu, DebianLinuxの場合)

CentOS, Fedora, RedHatlinuxの場合は読み飛ばす.

以下のコマンドを実行する.

$ wget -q http://git.io/Sxpr9g -O /tmp/msm && bash /tmp/msm

msmのインストール(CentOS, Fedora, RedHatLinuxの場合)

Ubuntu, DebianLinuxの場合は読み飛ばす.

以下のコマンドを実行する.

$ wget -q http://git.io/lu0ULA -O /tmp/msm && bash /tmp/msm

セットアップの完了

前述のコマンドにより,以下のセットアップが行われる.

  • msmコマンドが/usr/local/bin/に作成される.
    • rootだと/usr/local/bin$PATHに追加されておらず,直接実行できないことがある.((alias sudo="sudo "をprofileに追加するとパスが展開されて便利))
  • /etc/msm.confが作成される.
  • /opt/msmが作成される.
  • /opt/msmをホームディレクトリとするminecraftユーザが作成される.
  • /etc/init.d/以下にmsmの自動起動スクリプトがセットアップされる.
    • systemd用のセットアップは行われないので留意すること.
  • バックアップが動作するために,cronがセットアップされる.

MSMが使えるようになった.

MSMでサーバをセットアップする

まずデフォルトの設定でMinecraftサーバを1台セットアップする.ここでダウンロードされるバニラ版のJARは最終的には使われない.

Forgeをインストールする前提として,ここでは最新のminecraft(執筆時点では1.12.2)を使用する.

$ msm server create Minecraftサーバ名

msm server createコマンドにより,特にバージョンを指定しない場合は最新のJARファイル (執筆時点では1.12.2) が/opt/msm/jars/minecraftにダウンロードされる.

念のため,server.propertiesにもサーバのバージョンを指定する.msm-versionが指定されていると,MSMは優先的にこのバージョンのMinecraft JARファイルを使うようになる.

# 最終行に追加
msm-version=minecraft/1.12.2

MSMの管理下に,Minecraftサーバが1台セットアップされた.

MSMのMinecraftサーバにインストールするためのForgeをダウンロードする

ForgeはJARで提供されており,これにライブラリを加えて,バニラ版のJARの代わりに呼び出す.

まず以下のリンクから,基本的に右側のRecommended版をダウンロードする. 左側はLatest版で,頻繁に更新される上バグが取れきっておらず,特にLatest版のForgeを要求する一部のMODを使いたいのでなければ控えたほうがよい. 基本的にはRecommended版で十分である.

f:id:Windymelt:20171118200852p:plain
右端のInstallerとUniversalをダウンロードする

InstallerUniversalの両方をダウンロードする.

https://files.minecraftforge.net

直接サーバマシンにダウンロードしたいが,adfoc.usという邪魔な広告サイトを経由してダウンロードすることになるので,手元にダウンロードされる.

f:id:Windymelt:20171118201045p:plain
しばらく待つと右上にSKIPボタンが出現するので,これをクリックするとダウンロードできる

手元がlinux環境の場合,scpを使って2つとも転送し,Minecraftサーバのディレクトリに移動させる.

$ scp 2つのJARファイル サーバマシンのFQDN:/home/普段ログインするユーザ名/
$ ssh サーバマシンのFQDN
$ mv 2つのjarファイル /opt/msm/servers/サーバ名/

$ scp forge-1.12.2-14.23.0.2545-installer.jar forge-1.12.2-14.23.0.2545-universal.jar example.com/home/windymelt/
$ ssh example.com
$ mv forge-1.12.2-14.23.0.2545-installer.jar forge-1.12.2-14.23.0.2545-universal.jar /opt/msm/servers/myserver/

Forgeをインストールする

ForgeのUniversal版とインストーラが,MSM管理下のサーバのディレクトリに配置されている. このままでは動かないので,Forgeの動作に必要なライブラリをダウンロードさせる. 以下のようなコマンドをサーバマシン上で動作させる.

$ cd /opt/msm/servers/Minecraftサーバ名
$ sudo su minecraft # minecraftユーザになる
$ java -jar forge-1.12.2-14.23.0.2545-installer.jar forge-1.12.2-14.23.0.2491-universal.jar --installServer

librariesディレクトリとmodsディレクトリが作成される.これでForgeが起動できるようになった.

バニラのMinecraftサーバではなくForgeを使うようにする

minecraftユーザで以下を実行することで,シンボリックリンクを張り直し,MSM管理下のJARではなくForgeのJARを読み込むようにする.

$ cd /opt/msm/servers/Minecraftサーバ名
$ rm server.jar # 既にあるシンボリックリンクを削除する
$ ln -s forge-1.12.2-14.23.0.2491-universal.jar server.jar # シンボリックリンクを張り直す

サーバを起動する

msmコマンドを使ってMinecraftサーバを起動する.これはminecraftユーザでなくともよい.

$ msm Minecraftサーバ名 start

クライアントにもForgeをインストールする

これは調べればすぐに出てくるし簡単なので割愛する.

終わりに

間違いや感想などあればブクマやコメントしてくださると対応できます.

see also

windymelt.hatenablog.com

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?