OpenSim実行ユーザーの作成
OpenSimはネットワークから接続されるサーバーソフトウェアなので、root権限のまま実行するのは好ましくありません。万一バグがあった場合、そのサーバーの全権限を奪われてしまう可能性があります。そこで「opensim」という名前のユーザーを作成し、このユーザーでOpenSimを動作させます。rootユーザーでadduserコマンドを実行してください。アンダーラインの部分はユーザーが入力するところです。デフォルトを選択する場合はそのまま改行を入力してください。
# adduser Username: opensim Full name: OpenSim Owner Uid (Leave empty for default): Login group [opensim]: Login group is opensim. Invite opensim into other groups? []: Login class [default]: Shell (sh csh tcsh bash rbash nologin) [sh]: csh Home directory [/home/opensim]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: パスワードを入力します Enter password again: 再度パスワードを入力します Lock out the account after creation? [no]: Username : opensim Password : ***** Full Name : OpenSim Owner Uid : 1001 Class : Groups : opensim Home : /home/opensim Home Mode : Shell : /bin/csh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (opensim) to the user database. Add another user? (yes/no): no Goodbye!Shellには「csh」を指定してますが、好みのものを指定してください。
OpenSimのコンパイル
先ほど作成した「opensim」ユーザーでログインしOpemSimをコンパイルします。FreeBSDの場合、Alt-F2~F8をおして別の仮想コンソールからログインすると便利かもしれません。ちなみに、私はVirtualBoxのFreeBSDにsshでログインできるようにしてTera Termでログインして作業してます。ログインしたら、opensim というディレクトリをホームディレクトリ直下に作成し、ここにソースコードを展開してOpenSimをインストールすることにします。ソースコードはOpenSimのサイトのホームにある「Source Tarball (0.7.1.1)」のリンクからダウンロードします。FreeBSDはfetchコマンドでhttpダウンロードができます。
% cd % mkdir opensim % cd opensim % fetch http://dist.opensimulator.org/opensim-0.7.1.1-source.tar.gz % tar -x -v -z -f opensim-0.7.1.1-source.tar.gz % cd opensim-0.7.1.1-source ... README.txt, BUILDING.txtをよく読むこと ... % ./runprebuild.sh % nant % cd bin ... コンパイル結果と設定ファイルの雛形が bin ディレクトリにあります ...コンパイルは、私のCore2Quad Q9550 2.83GHzのマシンで105秒ほどでした。この後、binディレクトリにある、INI設定ファイルを環境に合わせて変更します。
しかしその前に、openjpeg-dotnet.dllに対応するlibopenjpeg-dotnetのFreeBSD対応共有ライブラリがないので、これをまずコンパイルします。
libopenjpeg-dotnetのコンパイル
OpenSimのBuild Instructionsのページでは、subversionで、リポジトリから直接チェックアウトしてコンパイルするようにとあるのですが、必要ないものも大量にチェックアウトされますし、ちゃんとメンテナンスされているのかも不明でした。この為、Open Metaverse Foundationの本家から直接最新版のソースコード(現時点で LibOpenMetaverse Release 0.9.0)を取得してきて、これにFreeBSD用パッチをあててコンパイルします。パッチファイルは次のとおりです。こちらからダウンロードするか、コピペして「~/opensim/openjpeg-dotnet_freebsd.patch」に保存してください。
Makefileへのパッチは、ごらんのとおりi386の32bitにしか対応してません。64bitや他のアーキテクチャへの対応は、前後をみて各自トライしてみてください :-)。
diff -ru openjpeg-dotnet.orig/Makefile openjpeg-dotnet/Makefile --- openjpeg-dotnet.orig/Makefile 2011-05-19 00:35:02.000000000 +0900 +++ openjpeg-dotnet/Makefile 2011-06-15 12:44:04.000000000 +0900 @@ -38,6 +38,14 @@ endif endif +ifeq ($(OSNAME), FreeBSD) + ARCH = $(shell uname -p) + ARCHSET = 0 + ifeq ($(ARCHSET), 0) + ARCH=-i386 + ARCHFLAGS=-m32 + endif +endif # Converts cr/lf to just lf DOS2UNIX = dos2unix diff -ru openjpeg-dotnet.orig/libopenjpeg/opj_malloc.h openjpeg-dotnet/libopenjpeg/opj_malloc.h --- openjpeg-dotnet.orig/libopenjpeg/opj_malloc.h 2011-05-19 00:35:02.000000000 +0900 +++ openjpeg-dotnet/libopenjpeg/opj_malloc.h 2011-07-15 12:43:15.000000000 +0900 @@ -76,7 +76,7 @@ #if defined(__sun) #define HAVE_MEMALIGN /* Linux x86_64 and OSX always align allocations to 16 bytes */ - #elif !defined(__amd64__) && !defined(__APPLE__) + #elif !defined(__amd64__) && !defined(__APPLE__) && !defined(__FreeBSD__) #define HAVE_MEMALIGN #include <malloc.h> #endif次に、libomv-0.9.0-source.zip をダウンロードし、パッチをあて、コンパイルします。unzipコマンドは、前回のツール・ライブラリインストール時にすでにインストールされている為、使えます。ライブラリのメイクにはgmakeコマンドを使ってください。
% cd ~/opensim % fetch http://libopenmetaverse.googlecode.com/files/libomv-0.9.0-source.zip % unzip libomv-0.9.0-source.zip % cd libomv-0.9.0-source/openjpeg-dotnet/ % patch -p1 -l < ../../openjpeg-dotnet_freebsd.patch % gmakeコンパイルが完了すると、カレントディレクトリに「libopenjpeg-dotnet-2.1.3.0-dotnet-1-i386.so」という共有ライブラリができているはずです。これをOpenSimのbinディレクトリにコピーします。
% chmod -x libopenjpeg-dotnet-2.1.3.0-dotnet-1-i386.so % cp libopenjpeg-dotnet-2.1.3.0-dotnet-1-i386.so ../../opensim-0.7.1.1-source/bin/コピーする前に共有ライブラリの実行属性を落としていますが、まあ気分の問題です。
以上で、OpenSimのコンパイルは完了です。次回はOpenSimの設定を完了させ、いよいよ自分のSIMにINしてみます。
(その4に続く)
0 件のコメント:
コメントを投稿