はかますたいる!きょろの技的雑記

井上恭輔(@kyoro353)の私的かつ技的な日記です。米国サンフランシスコで暮らすエンジニアです。

mono最新の2.2をFreeBSD7にインストールしてみた。

monoはFreeBSDでは昔からなかなか一筋縄ではインストール出来ない事で有名。
VM上のUbuntuでは難なくインストールできたのだけど、やっぱりFreeBSDだと駄目らしい。
最近はmonoに関する情報もネット上に集まってきたので諦めずに少し頑張ってみた。

FreeBSDにmonoを入れた】
http://d.hatena.ne.jp/ak11/20081009

【Mono::FreeBSD
http://www.mono-project.com/Mono:FreeBSD

上記サイトを参考にportsにパッチを当てる

$ wget http://bsd-sharp.googlecode.com/files/mono-merge.tar.gz
$ tar xfz mono-merge.tar.gz
$ cd mono-merge
$ make
# make install
$ rehash
$ mono-merge

次にportsでインストール

$ cd /usr/ports/lang/mono
# make install

とすると

gmake: *** [libgiofam.la] Error 1

エラーを吐いて止まるので

FreeBSD 7.0 で cannot find -lgio-2.0 と言われる件 [FreeBSD]】
http://nakagami.blog.so-net.ne.jp/archive/c35372564-1

こちらを参考にしてglib2を再インストールする

$ cd /usr/ports/devel/glib20
# make deintsall
# make install

気を取り直してもう一度。

$ cd /usr/ports/lang/mono
# make install

キタ━━━━(゜∀゜)━━━━ッ!!
インストールできた!!!!!!!!!(≧▽≦)!!!!!

今までpackageからインストールするしかできなかったmono on FreeBSDですが、今回初めて最新版のコンパイル&インストールに成功しました。
先人の皆様に心から感謝!!

初めて2系を使ったけど、いろいろとびっくりするくらい改善されてる。
動作自体も高速になってる感じ。

インタラクティブシェルも面白い!
が、インテリセンスの無い環境でわざわざC#を選ぶメリットも無いなぁ(笑)

ちなみにシェルではこんなことができる。

%csharp
Mono C# Shell, type "help;" for help

Enter statements below.
csharp> int i;
csharp> for(i=0;i<3;i++){
> Console.WriteLine("Hello, miko!");
> }
Hello, miko!
Hello, miko!
Hello, miko!
csharp>