無理!
他の機能が動いてるサーバー上でglibcのバージョン変更とかどうかしてる!
(この記事はNG編です。成功編は次回公開の記事をみてください)
–以下ボツ記事のかけら(参考にならない)–
Factorioには複数人が一つのマップで同時にプレイすることができるマルチプレイモードがあります。
マルチプレイモードでは、サーバーをFactorioのゲーム内でホストするモードの他に専用のサーバープログラムを使用してゲームとは切り離した状態でホストするHeadless(ヘッドレス)モードがあります。
今回はサーバープログラムをCentOSが動くLinuxでホストする手順を紹介したいと思います。
忙しい人向けの結論
そんなものはない。(時間を取ってやろう)
事前準備
以下のことができている前提です。
- サーバー側のポート(34197/UDP)が解放されている。(ルーターfirewall-cmdなど)
- サーバーにsshにて接続ができる。
- ある程度Linuxの操作についてわかる。
- 最低限の英語がわかる。
- SteamでFactorioを購入済
基本rootで作業します。 (#で始まるコマンドはスーパーユーザー権限です。 $は一般ユーザー権限)
やること(目的)
- FactorioのHeadless ServerをCentOSで動かす (CentOSのバージョンは7.xを想定)
- factorioユーザーを作ってそいつでプログラムを動かす。
- 今回は単純に動かすところまで。
自分向けFirewall-cmd設定メモ
# firewall-cmd --permanent --add-port=34197/udp
success
# firewall-cmd --reload
success
#firewall-cmd --list-all (解放できたか確認)
サーバープログラムのダウンロード
Factorioの公式サイトにアクセスし、右上の「sign up」から新規でアカウントを作成する。 (メールアドレスに確認のメールがくるので適当なタイミングで確認してください)
アカウント作成後、下の方にある「Link with my Steam account」からSteamと連携します。
連携後サイトトップに戻り、「Download headless」をクリックします。(ない場合は「Download」からもいけるはず。
今回は最新のバージョンをインストールするので最新バージョンのGeneric Linux tar package (64 bit .tar.gz or .tar.xz)を右クリックしてサーバープログラムのダウンロード用アドレスをコピーします。
その後サーバーで以下のコマンドを実行し、/opt配下にサーバープログラムを展開して、カレントディレクトリにしておきます。
# cd /opt # wget https://www.factorio.com/get-download/0.16.51/headless/linux64 (コピーしたアドレス) # tar xvf linux64 # cd factorio
実行してみようとする。
試しに一回rootのまま実行してみましょう
# ./bin/x64/factorio ./bin/x64/factorio: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ./bin/x64/factorio)
おっとエラーが出ましたね。
これは… glibcじゃん!!!
努力はしたけどDockerの方が楽だった。
glibc(GNU C library)はカーネルのバージョンと同じくらいバージョンが重視されるもので、Linuxにおいてほとんどのアプリケーションがglibcに依存します。
なのでglibcのバージョンが変わるとほとんどのアプリケーションが動作しなくなる可能性があります。
つまり…
無理では?
FRONTL1NE.NETのゲームサーバーはWebサーバーと同一なので、この作業やるのは危険すぎる。
普通にDockerで動かした方がいい。
やめやめ、Dockerは最高。
Linux で C/C++ の足固め: メモリー/ファイル/mmap (kernel 4.18.16)、malloc (glibc2.7)、アロケーター(C...
コメント