2012年8月28日火曜日

OSGrid接続成功!

今朝、OSGridが復旧していたので、再度接続を試してみたら成功しました!

OSGrid 1



OSGrid 2


早速音楽流してみました(^_^;)。

とりあえずやってみたのレベルなので、DBもSqllite3だったり、サーバー再起動したときに自動起動しないとか、いろいろ調整するところはあるけど、まあ、とりあえずはメデタシメデタシです。



ダウングレード完了だが....

Mono 2.10.6とNant 0.90 へのダウングレードは完了して、次のバージョンのOpenSimをビルドしてみました。
  • opensim-0.7.3.1-source.tar.gz (OpenSimのサイトから取得したもの)
  • opensim-dd0556a.tar.gz (OSGridの7.4 DEV版の最新)
これらを、スタンドアローンモードで動かしたところ、一応正常に動作しているようでした。

OSGridに接続するにあたって、OpenSimをFreeBSDのJail環境内で動かしています。Jail環境の中で動かせば、万一外部から進入されても、ホスト側の環境までは進入しにくいのではないでしょうか。

sysutils/ezjailを使って、Jail環境を作り、その中にホスト環境で作成済みのバイナリーpackageをインストールしOpenSimをビルドしました。しかし、うごかしてみたら、これが起動途中でExceptionが発生し、止まってしまいます。原因がよく分らなかったので、とりあえずJail環境の中にPortsツリーをマウントして、ビルドしなおしました。
結局 libgdiplusのライブラリがうまく作成できてなかったような感じです(ソースに若干のパッチが必要)。あと、devel/pkg-config がdevel/pkgconf に置き換わってたりしているので、それらの影響がでてたのかもしれません。
いろいろもがいてて、やっとのことで安定してOpenSimをビルドできるようになりました。この辺りは、落ち着いたらまとめたいと思います。

OSGridの7.4 DEV版がビルドできたので、試しにOSGridに接続してみようと思い、OSGridのサイトを見ながら設定し、OpenSimを起動したところ、途中で固まってしまいました。OSGridのWebサイト にブラウザでアクセスしようとしたら、OSGridのサイトが落ちているようで、アクセスできません。ビューアでINしようとしてもできませんので、サイト全体が落ちているようでした。

というわけで、OSGridへのお試し接続は次回とします。







2012年8月23日木曜日

OpenSim環境のアップデイト (mono, nantのダウングレード)

古いバージョンのmonoで試したら、うまく動作しているみたいなので、monoを2.10.6へ、nantを0.90にダウングレードしてみます。

portdowngrade

PortsツリーをCVSとかで取得・展開している場合は、「cvs update -r リビジョン」で素直に古いバージョンを取り出せばいいんですが、インストール時にPortsツリーも展開してたり、CVSupで最新版をとってきているような場合、portdowngradeというツールを使うと便利です(実は、最近知った ^_^;)。

portdowngradeの使い方を調べるのも面倒なら、CVSwebから直接該当するバージョンのPortsファイルをダウンロードして、手動で置き換えたほうが早いかもしれません。でも、ここはせっかくだからportdowngradeを使ってみます。

portdowngradeは以前は、「sysutils/portdowngrade」にあったのですが、現在は「ports-mgmt/portdowngrade」に移動しています。 portupgradeをインストールしているのであれば、次のコマンドでインストールできます。
# portinstall ports-mgmt/portdowngrade

ではダウングレードしてみましょう。環境変数CVSROOTにAnonymousCVSサーバーのpserverの情報をセットします。現在のFreeBSDハンドブックによると、今のところ、台湾とフランスのサーバーしか動いてないみたいです。昔は日本にもサーバーがあったのですけど、Subversionに移行したから、減ってるのかなぁ。
cvs pserverは、まず使う前にloginします。初回は~/.cvspassファイルが無いので警告がでますが、気にしないでいいです。2回目以降からでなくなります。
# setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
# cvs login
Logging in to :pserver:anoncvs@anoncvs.tw.freebsd.org:2401/home/ncvs
CVS password: (anoncvsといれる。なんでもいいみたいだけど)
cvs login: warning: failed to open /root/.cvspass for reading: No such file or directory
次に、portdowngradeでlang/monoを2.10.6にダウングレードします。
# portdowngrade lang/mono

portdowngrade 0.6 by Heiner Eichmann
Please note, that nothing is changed in the ports tree
unless it is explicitly permitted in step 6!

Seeking port lang/mono ...

Found several matches:
1: lang/mono
2: lang/mono-basic

Please choose one: 1 (<--- lang/monoに複数マッチするから、適切なものを選ぶ)

Downgrading port: lang/mono

Step 1: Checking out port from CVS repository
CVS root directory (from CVSROOT environment variable): :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs

Step 2: Reading the port history from the CVS repository

Step 3: Analyzing the port history from the CVS repository

Step 4: Load port version numbers and present results
Keys: <space> : next page                      d : details
            p : previous page
      <enter> : leave presentation and downdgrade if wanted
======================================================================================================================
number         date         portversion  comment
    1  2012/06/29 18:24:08  2.11.1       - Remove SITE_PERL from *_DEPENDS
    2  2012/05/13 07:48:35  2.11.1       Fix build when devel/libinotify is installed
    3  2012/05/02 18:16:19  2.11.1       Update to 2.11.1.
    4  2011/10/08 23:13:36  2.10.6       Update to 2.10.6.
    5  2011/09/21 17:52:24  2.10.5       Update to 2.10.5.
    6  2011/06/12 19:06:22  2.10.2       Hello Mono 2.10!
    7  2011/05/13 16:12:53  2.6.7_1      Force commit to fix wrong info in last commit log
   ... 
   ... ずらずらとでてくるので、適当なところで <enter>キーを押すと、
   ... そこで中断し、どの番号(number)のPortsを取り出すか聞いてくる。
   ...

Total lines: 113. Command:
Enter version number to change port to (0: exit): 4 (<--- 4番が2.10.6のバーション)


Step 5: Checking out choosen date of the port from the CVS repository

Step 6: Modifying the port
Port: lang/mono
at : 2011/10/08 23:13:36
Type 'yes' to bring the port to the state of the date above
or 'no' to exit without changing anything. Note, that this only changes
the port, not the installed software! yes or no:yes (<--- yesで修正をかける)

The port has been set to the selected version. Install it if you wish.
If you have portupgrade installed, you should run

portsdb -Uu

now, to see the changes in the ports database. In any case

portupgrade -f mono

will install the changed port. Note: if you run cvsup, the port
is changed back to the choosen label!
devel/nantも0.90にダウングレードします。
# portdowngrade devel/nant

portdowngrade 0.6 by Heiner Eichmann
Please note, that nothing is changed in the ports tree
unless it is explicitly permitted in step 6!

Seeking port devel/nant ... found: devel/nant

Step 1: Checking out port from CVS repository
CVS root directory (from CVSROOT environment variable): :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs

Step 2: Reading the port history from the CVS repository

Step 3: Analyzing the port history from the CVS repository

Step 4: Load port version numbers and present results
Keys:  : next page                      d : details
            p : previous page
       : leave presentation and downdgrade if wanted
======================================================================================================================
number         date         portversion  comment
    1  2012/07/27 06:50:38  0.91         SVN rev 301591 on 2012-07-27 06:50:38Z by erwin
    2  2012/01/21 18:54:09  0.91         - Extend BROKEN tag to all amd64
    3  2012/01/15 21:39:34  0.91         - Mark BROKEN on amd64/9:
    4  2011/10/27 17:30:50  0.91         - Update to 0.91
    5  2011/04/12 15:19:26  0.90         - Remove obsolete MD5 checksum
    6  2010/09/22 17:10:21  0.90         - Update MAINTAINER to my FreeBSD.org address
    7  2010/06/30 11:37:00  0.90         - Update to 0.90
    8  2009/11/18 22:39:50  ${PORTNAME}-0.85-src_1  - Mark MAKE_JOBS_UNSAFE
    9  2009/08/22 00:18:17  ${PORTNAME}-0.85-src_1  - Switch SourceForge ports to the new File Release System: categor
   ... 
   ... ずらずらとでてくるので、適当なところで <enter>キーを押すと、
   ... そこで中断し、どの番号(number)のPortsを取り出すか聞いてくる。
   ...

Total lines: 23. Command:
Enter version number to change port to (0: exit): 5 (<--- 5番が 0.90のバーション)


Step 5: Checking out choosen date of the port from the CVS repository

Step 6: Modifying the port
Port: devel/nant
at : 2011/04/12 15:19:26
Type 'yes' to bring the port to the state of the date above
or 'no' to exit without changing anything. Note, that this only changes
the port, not the installed software! yes or no:yes (<--- yesで修正をかける)

The port has been set to the selected version. Install it if you wish.
If you have portupgrade installed, you should run

portsdb -Uu

now, to see the changes in the ports database. In any case

portupgrade -f nant

will install the changed port. Note: if you run cvsup, the port
is changed back to the choosen label!
次に、portdowngradeで指示されていたようにportupgradeでインデックス等を作り直し(時間かかります)、まずmonoを作成しなおします。
# portsdb -Uu
...
# portupgrade -f lang/mono
...
次にnantを次のように作成しなおそうとしましたが、なんかエラーになりました。
 
# portupgrade -f devel/nant
...
...
Unhandled Exception: System.ArgumentException: failed to convert parameters
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in :0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in :0
  at NAnt.Console.ConsoleStub+HelperArguments.CallConsoleRunner () [0x00000] in :0
  at System.AppDomain.DoCallBack (System.CrossAppDomainDelegate callBackDelegate) [0x00000] in :0
  at (wrapper remoting-invoke-with-check) System.AppDomain:DoCallBack (System.CrossAppDomainDelegate)
  at NAnt.Console.ConsoleStub.Main (System.String[] args) [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: failed to convert parameters
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in :0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in :0
  at NAnt.Console.ConsoleStub+HelperArguments.CallConsoleRunner () [0x00000] in :0
  at System.AppDomain.DoCallBack (System.CrossAppDomainDelegate callBackDelegate) [0x00000] in :0
  at (wrapper remoting-invoke-with-check) System.AppDomain:DoCallBack (System.CrossAppDomainDelegate)
  at NAnt.Console.ConsoleStub.Main (System.String[] args) [0x00000] in :0
gmake: *** [install] Error 1
*** Error code 2

Stop in /usr/ports/devel/nant.
*** Error code 1
...
いろいろやってみたところ、結局 portupgradeを使わずに、 手動でmake installすればうまくインスートルできました。
 
# cd /usr/ports/devel/nant
# make clean
# make install
エラーが起こってしまったのは、mono 2.11.1の残骸でも残っていたのだろうか...。 原因究明は、またの機会にします(^_^;)。

まあ、とりあえず、これでダウングレード完了です。

2012年8月20日月曜日

OpenSim環境のアップデイト (xbuildをつかってみる)

SL内で、 Rikachann Aabyeさんにnantの代わりにxbuildを使ってみてはと言われて試してみました。OpenSimのソースに同梱のBUILDING.txtにも、「May also use xbuild (included in mono distributions)」と書いてありました。

ちなみに、OpenSimのソースは、opensim-0.7.3.1-source.tar.gzをOpenSimのサイトからとってきました。 また、Portsアップデイト後のmonoのバージョンは次の通りです。
% mono --version
Mono JIT compiler version 2.11.1 (tarball Mon Aug 13 11:48:31 JST 2012)
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           normal
        SIGSEGV:       normal
        Notification:  kqueue
        Architecture:  x86
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            Included Boehm (with typed GC and Parallel Mark)
まずは、runprebuild.shを実行してからxbuildを実行してみます。
% ./runprebuild.sh
Prebuild v2.0.5
Copyright (c) 2004-2010
...
... 省略 ...
...
% xbuild
XBuild Engine Version 2.11.1.0
Mono, Version 2.11.1.0
Copyright (C) Marek Sieradzki 2005-2008, Novell 2008-2011.

Build started 08/19/2012 16:09:03.
__________________________________________________
Project "/usr/home/opensim/opensim/opensim-0.7.3.1-source/OpenSim.sln" (default target(s)):
        Target ValidateSolutionConfiguration:
                Building solution configuration "Debug|Any CPU".
...
... 省略 ...
...
        /usr/local/lib/mono/3.5/Microsoft.Common.targets:  warning : Found a conflict between : 'mscorlib, Version=2.0.
0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' and 'mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyTok
en=b77a5c561934e089'. Using 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' reference.
        /usr/local/lib/mono/3.5/Microsoft.Common.targets:  warning : Found a conflict between : 'System, Version=2.0.0.
0, Culture=neutral, PublicKeyToken=b77a5c561934e089' and 'System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b
77a5c561934e089'. Using 'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' reference.

         204 Warning(s)
         0 Error(s)

Time Elapsed 00:03:05.2317040
xbuildは一応成功しているように見えます(本当は出力を詳細に調べる必要があるけど...)。 binディレクトリにおりて、OpenSim.ini等の設定ファイルを設定し、OpenSim.exeを起動してみます。
% mono OpenSim.exe
16:44:07 - [OPENSIM MAIN]: configured log4net using default OpenSim.exe.config
16:44:07 - [OPENSIM MAIN]: System Locale is
16:44:07 - [OPENSIM MAIN]: Runtime gave us 200 worker threads and 8 IOCP threads
16:44:07 - [OPENSIM MAIN]: Bumping up to 500 worker threads and 1000 IOCP threads
16:44:07 - Performing compatibility checks...
16:44:07 - Environment is compatible.
16:44:07 - [CONFIG]: Reading configuration settings
16:44:07 - [CONFIG]: Reading configuration file /usr/home/opensim/opensim/opensim-0.7.3.1-source/bin/OpenSimDefaults.ini
16:44:07 - [CONFIG]: Reading configuration file /usr/home/opensim/opensim/opensim-0.7.3.1-source/bin/OpenSim.ini
16:44:07 - [LOGGING]: Logging started to file /usr/home/opensim/opensim/opensim-0.7.3.1-source/bin/OpenSim.log
16:44:07 - [OPENSIM MAIN]: Using async_call_method SmartThreadPool
16:44:07 - [STARTUP]: Beginning startup processing
16:44:07 - [STARTUP]: OpenSimulator version: OpenSim 0.7.3.1 Release
16:44:07 - [STARTUP]: Operating system version: Unix 8.2.10.0, .NET platform Unix, 32-bit
16:44:07 - [APPLICATION]:
APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs

Exception: System.TypeLoadException: Could not load type 'OpenSim.Framework.Console.CommandConsole' from assembly 'OpenSim.Framework.Console, Version=0.6.5.29081, Culture=neutral, PublicKeyToken=null'.
  at OpenSim.Framework.Servers.BaseOpenSimServer.Startup () [0x00000] in :0
  at OpenSim.Application.Main (System.String[] args) [0x00000] in :0

Application is terminating: True
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'OpenSim.Framework.Console.CommandConsole' from assembly 'OpenSim.Framework.Console, Version=0.6.5.29081, Culture=neutral, PublicKeyToken=null'.
  at OpenSim.Framework.Servers.BaseOpenSimServer.Startup () [0x00000] in :0
  at OpenSim.Application.Main (System.String[] args) [0x00000] in :0
なんだか良くわからない例外(Exception)が発生しています。うーん、OpenSim.Framework.Console.CommandConsole は OpenSim/Framework/Console/CommandConsole.cs のソースの中で定義されているクラスっぽいけど....なんでだろ。

古いバージョンのmonoで試してみる

mono のバージョンが 2.10.6 のままのマシン(nantも0.90でちゃんとうごいてたもの)があったので、これでopensim-0.7.3.1を展開し、コンパイルしてみたところ、すんなりコンパイル&実行できてしまいました。FreeBSDの mono 2.11.xx は、OpenSimを動かすにはまだ不具合が多いってことなのかしら....。

というわけで、今日はここまでにします(^_^;)。

2012年8月13日月曜日

OpenSim環境のアップデイト (nantが...)

VirtualBox の中の OpenSim環境のアップデイトを始めたんですが、いろいろと変わってて、すんなりと動きません。
nantが0.91になってMakefileに
BROKEN=         fails to build
とマークされてます(BROKENの意味はこちら)。そのまんまではなんかすんなりコンパイルできないようです。
VirtualBoxに割り当ててた仮想ディスクの容量(4GB)もいろいろビルドしてると、足りなくなくなったようで仮想ディスクを10GBで作成し dump & restoreで複製つくります。

ちゃんと動くようになるまで、まだまだかかりそう。変化しつつあるシステムを追っかけるのは大変だな。

2012年8月12日日曜日

OpenSim環境のアップデイト

やはり不定期日記の名の通り、一年くらい放置してしまいました(^_^;)。一応データベースをMySQLにしたりするのはやってみてましたが、OpenSimやmonoバージョン等も上がってきているので、ここらで一度いろいろアップデイトかけようと、作業を始めました。

 インストールしているPortsのアップデイトには、portupgrade というツールを使っています。Ports間の依存関係とかにあまり頭を使わなくてすむので、楽ができます。portsツリーのアップデイト方法やportupgradeの使い方などは検索してみてください。

というわけで、今、VirtualBox の中の FreeBSD&OpenSim 環境をアップデイト中。かなり時間かかりそう...。