ヒマをみつけてWeb開発
その場の思い付きを、ヒマをみつけてWebサイトにしてみるブログ

CentOS5.4で、mono2.6.1をソースからビルド

Thursday, 25 February 2010 19:29 by sabro

Linux Monoで、BlogEngine.NETを動かすで書いたとおり、Mono2.0以上では、うちのクリエモンが動かなかったのですが、やっぱり最近のバージョンの方がパフォーマンスも上がってるだろうし、もっかい試してみんべってことで、mono-2.6.1をソースからビルドしてみました。openSUSE向けならバイナリもあるみたいですが、さぶろーが使ってるCentOSでは、ソースから入れないとダメみたいです。

前提として、今回使用するマシンには、以前古いバージョンのMonoをソースから入れた気がするので、OSインストール直後のまっさらな状態だと、もっと依存ライブラリのエラーが出るかもしれません、注意。(たしか、画像関連のライブラリと、apacheの開発用パッケージが必要だった気がする)

さぶろーの場合、あくまでもWebサイトをホストするのが目的なので、簡易ASP.NETサーバのXSPと、ApacheのMonoモジュールであるmod_monoも入れることにします。あと、System.Drawing名前空間のクラスを使う場合は、libgdiplusも必要です。クリエモンは画像のアップロードで、該当クラスを使ってるので、こっちも入れます。

また、ソースからインストールすると削除するときなど手動では大変なので、ソースコードパッケージを管理できるPacoっていうツールを使います。make installするときに、次のようにかませて使います。 # paco -D make install

必要なパッケージをダウンロード
Mono 2.6.1 Sourcesからソースパッケージをダウンロード、解凍します。 さぶろーは、以下のパッケージをダウンロードしました。
  • libgdiplus-2.6
  • mono-2.6.1
  • xsp-2.6
  • mod_mono-2.6
libgdiplusをビルド
# cd libgdiplus-2.6 
# ./configure 
# make 
# paco -D make install 
monoをビルド
# cd mono-2.6.1 
# ./configure 
# make 
# paco -D make install 
xspをビルド
# cd xsp-2.6 
# ./configure 
# make 
と、ここまでやったところでエラーが( ̄□  ̄ ||
/usr/local/bin/mcs -pkg:dotnet -r:System.Xml.dll -target:library -out:SiteMapReader_1.1.dll SiteMapReader_1.1.cs Package dotnet was not found in the pkg-config search path. Perhaps you should add the directory containing `dotnet.pc' to the PKG_CONFIG_PATH environment variable No package 'dotnet' found error CS8027: Error running pkg-config. Check the above output.
メッセージの通りに、PKG_CONFIG_PATHを設定してあげたらうまくいきました( ̄∇  ̄ )
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# make
# paco -D make install 
mod_monoをビルド
# cd mod_mono-2.6
# ./configure
# make
# paco -D make install

割とすんなり終了。やっぱ、前回入れたからかな。あんまり参考にならないエントリでした・・・。

Tags:  
Categories:   .NET
Actions:   Permalink | Comments (53) | Comment RSSRSS comment feed

開発環境をMonoDevelopへ移行しました

Sunday, 14 February 2010 12:30 by sabro

長いことVisualStudio使ってましたが、じつは去年の終わりくらいにMonoDevelopへ移行しました。MonoDevelopは、去年末に出したバージョン2.2から、Windowsを本格的にサポートしたみたいで、若干おかしい動きもありますが、開発に重大な支障なく使えてます。

移行したメインの理由は、Viモードがあるからです。VisualStudioでも有料のVimプラグインや、VimエディタからVisualStudioを操作するようなツールはあるんですが、MonoDevelopはIDEが最初からViのキー入力をサポートしており、メニューで設定をいじるだけでコードエディタでViキーバインドが使えるようになります。まだまだサポートしているキー自体は少ないですが、それでも作業効率が上がった気がします。もちろん、インテリセンスもちゃんと使えますよ( ̄∇  ̄ )

さて、お目当てはViモードだったんですが、他にもいくつか良い点がありました。

1つ目は、C#の最新の構文が使えるようになったことです。じつは、さぶろーは、VisualStudio2005を使っていました。、MonoRailが正式にVS2008をサポートしてないという話だったからです。たぶん2008でも開発は出来るだろうと思うんですけど、大事をとって2005にしていたのでした。2005は、C#2.0までしかサポートしないんで、ラムダ式、LINQ、型推論、拡張メソッドなどの便利な機能が使えません>< MonoDevelop2.2は、C#3.0をサポートしているほか、一部C#4.0をサポートしているそうです ←(これはMonoの話でMonoDevelopは関係なかったかも)。今ではラムダ式使いまくりです(^^)

2つ目は、フリーでありながらExpressEditionの制約がないことです。MonorailをVS2005 ExpressEditionで開発する方法まとめで書いたとおり、ExpressEditionではVSC#とVSWDを切り替えつつ開発していく必要があり、プロジェクト構成も汚くなりがち。MonoDevelopでは、VSのStandardEdition以上と同じく、1つのIDEでクラスライブラリも、ASP.NETプロジェクトも同一のソリューション上で開発できます。

3つ目は、Monoで動かない機能は、そもそも作れないようになっていることです。VisualStudioで作って、Linux上のMonoVMで動かそうとすると、Monoでは動作しないような場合があるんですが、MonoDevelopはMonoと足並みを揃えて開発されているので、そのようなことがありません。MonoVMで動かしたいという方は、検証が楽になると思います。

もちろん、良い点だけではなく、不満点もいくつかありました。

  • MonorailのViewEngineの1つ、AspView用のaspxファイルでで開けないものがある
  • デバッグ時に、変数の値がなかなか表示されないことがある

 

aspxが開けなかった問題は少し面倒でしたが、別途テキストエディタで開いて編集しています。

最後に、移行時に行なった作業ですが、MonoDevelopはVisualStudioのプロジェクトをそのまま開くことが出来るので、基本的には作業不要でした。ただ、日本語は文字化けしたので、Shift-JISから、UTF-8への変換だけ行ないました。

さぶろーは、かなりMonoDevelop気に入ってしまいましたが、みなさんどう感じましたでしょうか。MonoVM上でプログラムを動かしたい方にはオススメです( ̄∇  ̄ )

Tags:   , , ,
Categories:   .NET
Actions:   Permalink | Comments (45) | Comment RSSRSS comment feed