JF Linux Kernel 3.x/2.6 Documentation: /usr/src/linux/Documentation/mono.txt

mono.txt

Linux 用 Mono(tm) バイナリカーネルサポート [プレインテキスト版]


           Linux 用 Mono(tm) バイナリカーネルサポート
           ------------------------------------------


mono CLR ラッパーを使う必要なく Mono ベースの (.exe ファイル形式の)
.NET バイナリを自動的に実行できるように Linux を設定するために、
BINFMT_MISC カーネルサポートを使用することができます。

次のことをおこなえば、他のプログラムと同じように、Mono ベースの .NET
バイナリを実行することができるようになります。


1) バイナリパッケージ、ソースの tarball をダウンロードするか、または
   CVS からインストールするかして、最初に Mono CLR サポートをインス
   トールする必要があります。幾つかのディストリビューション用のバイ
   ナリパッケージが次の場所にあります。

        http://go-mono.com/download.html

   Mono のコンパイルに関する説明は次の場所にあります。

        http://www.go-mono.com/compiling.html

   Mono CLR サポートをインストールしたら、/usr/bin/mono (他の場所、
   例えば /usr/local/bin/mono に配置されることもあります) が動くか
   どうかチェックしてください。


2) BINFMT_MISC をモジュールとしてコンパイルするか、カーネルに組み
   込み (CONFIG_BINFMT_MISC), 適切にセットアップする必要があります。
   モジュールとしてコンパイルすることを選んだ場合は、modprobe/insmod
   を使って手作業でインストールする必要があるでしょう。というのは、
   binfmt_misc と一緒だと、kmod を簡単にサポートできないからです。
   設定手順の詳細については、このディレクトリ内の 'binfmt_misc.txt'
   ファイルを読んでください。


3) システム起動時に実行されるよう、次のエントリを /etc/rc.local,
   または同等のスクリプトに加えてください。

   # カーネルに BINFMT_MISC モジュールを挿入する
   if [ ! -e /proc/sys/fs/binfmt_misc/register ]; then
           /sbin/modprobe binfmt_misc
           # Fedora Core のような幾つかのディストリビューションでは、
           # binfmt_misc モジュールがカーネルにロードされたときに
           # 次のコマンドが自動的に実行されます。そのため、次のコマ
           # ンドラインがまったく不要であることもありえます。この
           # ことがあてはまるかどうかは、/etc/modprobe.conf を参照
           # してください。
           mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
   fi

   # .NET CLR バイナリ用サポートを登録する
   if [ -e /proc/sys/fs/binfmt_misc/register ]; then
           # /usr/bin/mono を Mono CLR ランタイムの正しいパス名に
           # 置き換えてください (ソースもしくは CVS からコンパイル
           # すると、普通は /usr/local/bin/mono になります)。
           echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
   else
           echo "No binfmt_misc support"
           exit 1
   fi


4) コマンドプロンプトから直接 .exe ファイルを単に起動してみて、
   ラッパースクリプトを必要とせずに .exe バイナリが実行できるか
   どうかチェックしてください。例えば次のようにします。

        /usr/bin/xsd.exe

   注意:もしもパーミッション拒否エラーにより失敗した場合は、.exe
         ファイルに実行権限があるかどうかチェックしてください。

Linux カーネル 3.x/2.6 付属文書一覧へ戻る