2

编译安装mono 让linux也支持.NET应用

Mono可以让.NET程序跨平台运行在Linux,BSD,Windows,MacOS,Sun Solaris,Wii,索尼PlayStation,苹果iPhone等几乎所有
常见的操作系统之上。
下面介绍下如何在linux上编译安装mono:

注:编译环境:gcc bison pkgconfig glib glib2-devel gettext make httpd-devel gcc-c++ libstdc++-devel


一、下载并解压源代码:
1.需要源码包:
mono环境源码包:mono-2.10.2.tar.bz2
xsp解释器源码包:xsp-2.10.2.tar.bz2
apache mod_mono模块源码包:mod_mono-2.10.tar.bz2

2.下载地址:
wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.10.2.tar.bz2
wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.10.2.tar.bz2
wget http://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.10.tar.bz2

3.解压源码包:
tar -jxvf mono-2.10.2.tar.bz2
tar -jxvf xsp-2.10.2.tar.bz2
tar -jxvf mod_mono-2.10.tar.bz2

二、安装mono环境:

cd /tmp/mono-2.10.2
./configure --prefix=/opt/mono
#第一个参数为mono安装路径
make&&make install
echo export PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig:$PKG_CONFIG_PATH>>~/.bash_profile
echo export PATH=/opt/mono/bin:$PATH>>~/.bash_profile
source ~/.bash_profile

现在,你可以在命令行输入:mono -V
假如出现了以下信息:
Mono JIT compiler version 2.10.2 (tarball Fri May 27 03:46:00 CST 2011)
Copyright (C) 2002-2011 Novell, Inc and Contributors. www.mono-project.com
TLS:           __thread
SIGSEGV:       altstack
Notifications: epoll
Architecture:  x86
Disabled:      none
Misc:          softdebug
LLVM:          supported, not enabled.
GC:            Included Boehm (with typed GC and Parallel Mark)
那么恭喜,你已经正确的安装完成了Mono运行环境,可以在Linux下运行和编译 .Net 应用程序了。
卸载 Mono 也很简单,只要输入 make uninstall ,就会自动的删除所有安装的可执行程序和脚本。如果你希望重新编译
安装 Mono ,则可以先输入: make distclean ,然后按照刚才的顺序输入: ./configure ,make ,make install 。

三、如果你还想让linux上的apache支持aspx页面的话,请继续往下:

1.安装xsp解释器:

cd /tmp/xsp-2.10.2
./configure --prefix=/opt/mono
make&&make install

2.安装mod_mono:

cd /tmp/mod_mono-2.10
./configure --prefix=/opt/mono --with-mono-prefix=/opt/mono --with-apxs=/opt/apache/bin/apxs

#第一个参数为mod_mono安装路径
#第二个参数为指定mono路径
#第三个参数为指定apache配置脚本路径
make&&make install

3.配置apache,使apache支持aspx文件
在/opt/apache/conf/httpd.conf中添加
Include /opt/apache/conf/mod_mono.conf
重新启动apache服务

现在,我们来测试Asp.Net服务器:
a.测试是否能够执行aspx:
在/opt/apache/htdocs目录下建一个test.aspx页面,内容为
<%=”Hello World!”%>
用其他机器的浏览器打开http://ip/test.aspx
b.跑xsp自带的测试程序:
\cp -R /opt/mono/lib/xsp/test/* /opt/apache/htdocs
用其他机器的浏览器打开http://ip/index.aspx
如果你看到你所希望看到的,恭喜你,你成功了。