Linux Kernel 2.6 Documentation:
/usr/src/linux/Documentation/mono.txt
mono.txt
Linux 用 Mono(tm) バイナリカーネルサポート
[プレインテキスト版]
- 原著作者: unknown
- 翻訳者: 川崎 貴彦 <takahiko(a)hakubi.co.jp>
- バージョン: 2.6.5
- 翻訳日時: 2004/05/04
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 カーネル 2.6 付属文書一覧へ戻る