ラベル fcraft の投稿を表示しています。 すべての投稿を表示
ラベル fcraft の投稿を表示しています。 すべての投稿を表示

2011年9月18日日曜日

Puppy LinuxにMinecraftのサーバ(fCraft)を建てよう(後編)

前回の続き。メインPCの方で動作確認できたので、古いPCでやってみる。
古いPC(SVII265)には、Puppy Linux4.3.1日本語版が入れてある。
こちらで、fCraftサーバを動かして、メインPCから接続するのが目標。

当初、古いPCでもMonoをビルド、インストールしようと思っていた。
が、このスペックでmakeなどしたら、どれだけ時間が掛かるか分からない。
あるいは、メモリ不足でハングアップする可能性の方が高いか、、、。

で、Puppy Linuxでは独自のPETパッケージを作成する機能があることを
思い出した。
古いPCでビルドするなんて危険を犯さなくても、PET化してインストールすれば、
簡単じゃないか!

早速、メインPC上のLucid Puppy5.2.5でPET化してみる。
今までにPET化作業はしたことが無く初めてになるので、ちょっと心配。

PET化の方法はココにあるので、その通りにやるだけ。

ビルド、インストールと同じ要領で作業を進めて、make install とするところで
new2dir make install
とやるだけ。
後は表示にそって作業を進めていけば終了する。

Puppy Linux用のmonoを動かすPET

libgdiplus-2.10-i486.pet
mono-2.10.2-i486.pet
2つのpetファイルが出来上がったので、それをPuppy Linux4.3.1の方でインストールする。
と言っても、petファイルをクリックするだけ。
mono-2.10.2.petは55MBもの容量があり、相当な時間が掛かると思いきや、意外とあっさり
インストールが終了した。

よし、fCraftを入れて.exeファイルに実行許可を与え、関連付けを/udr/bin/monoに設定。
ポチッとな!

何も起こらない!

うん。予想通り(?)
Lucid Puppy5.2.5でビルドしたものが、そのままPuppy Linux4.3.1で動かないことは
想定内なので、メインPCの環境をPuppy Linux4.3.1に切り替えて、同様の作業をした。

「やってもうた!!」
作業が終了してから気がついた。
先に作成したLucid版petファイルと同じ名前で、4.3.1版のpetファイルを作ってしまった。
皆さんPET化作業をするときには、名前の付け方に注意しましょうね!
簡単な説明を付加する事もできるので、解り易くしておきましょうね!

Lucid版のpetを削除して、新しいpetパッケージをインストールする。

OK!!

fCraftが無事に起動!
サーバが立ち上がった!

古いPCで強引にビルドせず、PET化してインストールする方法は大正解だった。

さて、以上で基本的な作業が終了したので、ここからが本番。
立ち上げたサーバへ、メインPCから接続して実際にMinecraftをプレイしてみよう。
fCraftUI.exeを起動して、上段に表示されるアドレスをコピーし、メインPCで
接続してみる。

Failed to connect
You failed to connect to the server. It's probably down!

はいっ??

サーバは落ちてませんが?

何回もやってみたが、結果は同じ。
http://www.fcraft.net/wiki/Installation_Instructions
ココを見ると、Troubleshootingに記載があった。

Other players cannot connect from LAN
1、2、3の手順でやってみるも、まだつながらない、、、。
ん?まてよ、さっきコピーしたアドレスと記述が微妙に違いますな。

http://www.minecraft.net/play.jsp?ip=_____&port=_____

この記述を下の様に修正してみる。
(ここまで来ると、勘が頼り)

http://www.minecraft.net/classic/play/play.jsp?ip=_____&port=_____

オォーーッ!!
接続成功したぁーーー!


Puppy Linux4.3.1でfCraftサーバ起動


実際にプレイできることが確認できた。

↑古いPCのサーバ
↑メインPCで接続している

推測では、Minecraftの新バージョンが出たのを機に、本家のサイト構成の
変更があったのではないかと。

Puppy LinuxでMinecraftのサーバを建てる為にMonoを入れる為にソースからビルドし、
非力なPCにインストールする為にPET化し、、、。
日本語でOK?状態の作業がようやく終了した。

非常に疲れたが、目標を達成できた満足感はある。
Puppy Linuxの(日本語の)情報が少なくて難儀することが多いが、自分で色々と
試してみるのも面白みの一つと思って、やって行こう。

2011年9月17日土曜日

Puppy LinuxにMinecraftのサーバ(fCraft)を建てよう(前編)

ちょっと長いです。興味のある方だけどうぞ。

Minecraftと言うゲームをやってみた。
無料で出来るClassic版。

シングルプレイの他にマルチプレイで多人数の参加ができる。
見知らぬ人が建てたサーバにお邪魔して、ゲームをプレイできるのだ。
ただし、お邪魔する身分では利用できる機能の制限がある。

なので、自分でサーバを建ててしまおうと言う目論見。

サーバには公式で提供するサーバと、カスタムサーバがある。
機能的にはカスタムサーバの方が良さそうなのでココで紹介されている
fCraftと言うのを使ってみよう。


先ずは、WindowsXPでサーバを建ててみる。ココを参考にしたら、
あっけないくらい簡単にできてしまった。

しかし、サーバマシンと自分でプレイするPCが同じになってしまうので、
別PCでサーバを建てられないものかと思案。

fCrsftはLinuxにも対応してるらしいので、Puppy Linuxで出来ないかと
トライすることにした。

例によって、Puppy Linux + fCraft などと言う日本語の情報量が圧倒的に
少ない状況。

http://www.fcraft.net/wiki/Installation_Instructions

さあ、英語のお勉強かぁ?

とりあえず、LinuxではMonoなるものが必要と、更にGUIで動かすならlibgdiplus
も必要とな。
じゃあ、Puppy Linux用のPETパッケージを探してみましょうか。

うん、あった、あった。

http://openbve.freeforums.org/openbve-in-puppy-linux-mono-t692.html

openBVEって言う鉄道シミュレーションのフォーラムらしいが、そこに
mono-2.4-i486.pet
libgdiplus-2.4-i486.pet
2つとも紹介されている。(Google先生。流石です!)

この2つが入ったら、Monoで「.exe」ファイルを実行させるようにする。
ターミナルでコマンド入力

mono SomeFile.exe

あれ?エラーですね。
これって、.exeファイルをmonoで起動させるってコマンドじゃないのかな?

よく解らんので別の方法を試してみる。
先に、fCraftのファイルに実行属性を付加しておいて、クリックでMonoを呼び出すように
ファイルの関連付けをする。
んでもって、ConfigTool.exeをクリック。

おおー!!
起動したじゃないですか!

Monoってのは、.NET Framework環境をLinux上に構築するらしく、.NETアプリがLinuxで
動いてしまうと言う事らしい。(凄いですね)

あとはWindowsとほぼ同じ、って書いてある。問題はファイアーウォールの設定か?
とりあえず細かい設定は置いといて、ファイアウォールをoffにした状態でやってみる。
fCraftUI.exeを起動したが、何故か一瞬だけウィンドウが出て消えてしまう。
fCraft.logを開いて眺めて見ると、

ERROR: Could not parse Mono version.
Warning: You are using a relatively old version of the Mono runtime ().
It is recommended that you upgrade to at least 2.8+

うーん、Monoのバージョンが解析不能なくらい古いらしい。
fCraftのページを見ると最低でも2.6.4、推奨は2.10.2となってる。
2.4じゃ駄目って訳か、、、。
検索してみたが、該当バージョンのPETパッケージが見つからない。
Debianのmono-runtime2.6.3を見つけたので試しに入れてみた。
やはりfCraftUI.exeを起動すると、ウィンドウが出て消えてしまう。
fCraft.logで確認すると、今度はバージョン解析はできているが、まだ古いと。

こうなったら、推奨バージョンのmonoソースを落として、自分でビルド、インストール
するしかないな!


検索して次のページがあったので、これを参考にしながらやってみる。
http://smdn.jp/programming/mono/build_install/mono-2.10/

通常はPuppy Linux4.3.1を使っているが、新しめのバージョンの方が無難だろうと
考えて、手持ちのCDにあるLucid Puppy5.2.5をCDブートで使うことにする。
更に、makeなど低スペックPCでは荷が重いので、メインで使っているPCで作業する。
(OKになれば、同じ手順を古いPCでやってみる)
Lucid Puppy5.2.5を初期状態のまま、LANとブラウザの設定だけ。

ファイアウォールは起動しないままにしておく。
(動作確認が目的なので、日本語化もせずにそのまま使う)

ソースコード(mono-2.10.2.tar.bz2)を展開するだけでも相当な時間が掛かってしまった。
(この時点で長い戦いになることは、容易に想像できるw)
まずは、libgdiplus-2.10からビルドする。
configureにはパラメータを付けずにそのまま実行。
make、make installは終わった。
/usr/local/lib/にインストールされた。
ふと嫌な感じが頭を過る。
「libgdiplus-2.4-i486.petとディレクトリが違うぞ?」

ま、いっか。って事で、次にmono-2.10.2のビルド。
これもパラメータは付けずに実行。
いざ、make。ポチッとな!
しばらく、流れる文字を見ているとErrorやらWarningやらが非常に目につく。
が、止まることはなかったので、長時間になることを覚悟して席を外した。

1時間後戻ってみると、makeは終わってる。
続いて、make install

終了後に、mono -V を実行してみると、ちゃんとバージョンが表示された。
お!行けるのか?
fCraftを実行、、、。

何も起こらない。
monoファイルを探すと、/usr/local/bin/にインストールされている。
「これもmono-2.4-i486.petの時と違うぞ?」

exeファイルの関連付けがおかしいのかもしれない。
改めて、/usr/local/bin/monoに関連付けしてクリック。

何も起こらない。

mono関連のディレクトリを色々開けてみると、何かファイルが少ない気がする。
(気がするって、ヲイヲイ!)。
と言うか、空のディレクトリさえ在る??
これは、ディレクトリだけ作られて中のファイルがコンパイルされてないのか。
やはり、パラメータ無しだし、インストール先も変だし、やり直しだなぁ。

調べてみると、monoビルドの際、先にインストールしたlibgdiplusを参照するので、
その参照先が違っていると駄目らしい。

今度は、configureにprefixを付けて、2.4を入れた時と同じディレクトリに
インストールするようにした。
(実際には、prefixの指定方法を間違えて、/usr/lib/lib/や/usr/bin/bin/に
インストールしたり、何回かやり直してる、、、orz)

先ずは、libgdiplus。

./configure prefix=/usr/
make
make install

/usr/lib/にインストールされたのを確認。

次に、monoでもprefixを付け、更にlibgdiplusを参照できるようにと
--with-libgdiplus=/usr/lib/ を付加し、その他は参考ページに記載してあったパラメータを付けた。

./configure --prefix=/usr --with-libgdiplus=/usr/lib/ --with-ikvm-native=no --with-profile4=yes --with-moonlight=no --with-monotouch=no --with-mcs-docs=no --with-x
make
make install

今回もWarningが大量に流れていく。が、Errorは見当たらないかも、、、。
1時間程掛けて、作業が終了。

mono -V で確認し、インストール先も/usr/bin/に入っていることを確認。
exeファイルの関連付けを、今入れたmonoにする。
よし、クリック。

ヤッホー!!
起動しましたぜ。ConfigTool.exeで設定をし、続いてfCraftUI.exeを起動。
こんどは、ウィンドウが消えることなくサーバを建てる事ができた。

Lucid Puppy5.2.5でfCraftサーバ起動


次は、古い低スペックPCへのビルド、インストールを試してみる。
どこまで対応できるか不明だけど、古いPCをサーバにして、メインPCからアクセス
できれば、当初の目論見は完了することになる。
(この後、何も低スペックPCでビルドしなくても、能力のあるPCでPET化して、それを古いPCへ
インストールすれば良い事に気が付いた。PETの作成から実際にサーバを動かすまでは次で)

※注意※
個人保存ファイルのサイズを充分大きく取っていないと失敗するかも