##インストール
Monoは容量が大きいためパッケージは、必要なものだけインストールできるように細分化されています。(たぶん)
ストレージ容量に余裕があって、個別にインストールするのが面倒なら開発環境か、全部インストールで、セットアップを行うのが楽です。ただし、インストールされるパッケージの数が多いので時間は掛かります。
実行環境の構築では、必要なパッケージのみをインストールした方が良いと思います。
###開発環境のインストール
https://launchpad.net/ubuntu/precise/+package/mono-devel
$sudo aptitude install mono-devel
###開発環境と全てのライブラリのインストール
https://launchpad.net/ubuntu/precise/+package/mono-complete
$sudo aptitude install mono-complete
###コンパイラのインストール
標準でインストールされるmono-cscコマンドでは、最新のC#の言語仕様で書かれたソースコードは、コンパイルできないようなので、mcsコマンドをインストールします。なお、過去コンパイラのバージョンごとに、コマンドが分かれていたが、今はどのコマンドでも内部的には同じ処理が呼ばれるようになったという情報を見たことがありますので気休めかも知れません。試しにバージョンをチェックしてみると同じバージョンが表示されるようです。
$sudo aptitude install mono-mcs
$mcs --version
Mono C# compiler version 2.10.8.1
##開発
###コンパイル
デフォルトのターゲットは、exeになりますので、単純にソースコードをコンパイルすると拡張子が、exeのファイルが出来上がります。初めて見た時にはギョッとしますが、言語仕様的に正常な動作です。複数のファイルをコンパイルする際には、Makefileを利用すると便利です。
$mcs HelloWorld.cs
###実行
$mono HelloWorld.exe
##デバック
###行番号をもったスタックトレースを表示させる。
$mono --debug HelloWorld.exe
###デバックログを出力させる。
monoが出力するログレベルを調整して問題を調査するのに利用します。
http://www.mono-project.com/docs/debug+profile/debug/
http://www.mono-project.com/docs/advanced/runtime/logging-runtime-events/
$export MONO_OPTIONS=--trace=E:all
$export MONO_LOG_MASK=all
$export MONO_LOG_LEVEL=debug