mono在国内的应用已经越来越多了。现在因为商业版权问题,很多公司都不敢将其用于生产环境上,但这无法挡住mono的魅力。.net的程序猿们,如果你还不知道mono那就太可惜了。
“Mono+Jexus”架构模式是Linux承载ASP.NET企业级应用的极为重要的架构方式。这种架构中,Jexus很好安装、配置,基本上就是一个下载、解压、复制的过程,但mono安装会麻烦点。这篇文章将记录下在ubuntu操作系统下,使用Mono源码安装。后续安装jexus,并使用一个测试页面来验证jexus安装是否成功。jexus与mono的结合将在下一篇进行介绍。
一、选择操作系统
因为整个过程运行于虚拟机,并且基于Linux发行版本选用问题,建议大家使用Ubuntu server版,我使用的版本是ubuntu server 12.04.2:
- ansen@ansen:~$ cat /etc/issue
- Ubuntu 12.04.2 LTS \n \l
如果你想升级ubuntu系统,可以运行以下两个命令:
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get install build-essential
- sudo apt-get install automake autoconf
- sudo apt-get install bison gettext libtool libglib2.0-dev libfreetype6-dev libfontconfig-dev
- sudo apt-get install libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg62-dev
- ansen@ansen:~$ sudo apt-get install libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg62-dev
- Reading package lists... Done
- Building dependency tree
- Reading state information... Done
- Some packages could not be installed. This may mean that you have
- requested an impossible situation or if you are using the unstable
- distribution that some required packages have not yet been created
- or been moved out of Incoming.
- The following information may help to resolve the situation:
- The following packages have unmet dependencies:
- libtiff4-dev : Depends: libjpeg-dev
- E: Unable to correct problems, you have held broken packages.
- sudo apt-get install libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev libjpeg-dev
二、安装Libgdiplus
在前面的做准备工作做好后,其实后面就简单了,和使用源码安装其他应用程序一样的步骤。但在安装mono前记得一定要先安装Libgdiplus:
- wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
下载完成后,解压:
- tar jvxf libgdiplus-2.10.tar.bz2
- cd libgdiplus-2.10
- ./configure --prefix=/usr
- make
- sudo make install
- cd ..
三、安装mono
安装完Libgdiplus,就可以下载mono源码,并进行安装了,安装步骤和安装Libgdiplus基本一样:
- wget http://download.mono-project.com/sources/mono/mono-3.0.10.tar.bz2
下载完成后,解压:
- tar jvxf <span style="font-family: Arial, Helvetica, sans-serif;">mono-3.0.10.tar.bz2</span>
- cd <span style="font-family: Arial, Helvetica, sans-serif;">mono-3.0.10</span>
- ./configure --prefix=/usr
- make
- sudo make install
- cd ..
如果在这时就进行配置安装Mono的话,会在make阶段得到一个“找不到 Microsoft.Portable.Common.targets 文件”的错误提示,
所以需要先进行如下处理:
#> cd (mono安装路径的前缀)/mono-3.4.0/mcs/tools/xbuild/targets
#> cp Microsoft.Portable.CSharp_4.0.targets Microsoft.Portable.Common.targets
#> vim Microsoft.Portable.Common.targets
在vim中将Microsoft.Portable.Common.targets文件中的这行:
<Import Project="$(MSBuildToolsPath)/Microsoft.CSharp.targets" />删除,然后保存退出。
四、mono另一种安装方法
- sudo apt-get install build-essential bison gettext pkg-config autoconf libtool automake
- wget http://download.mono-project.com/sources/mono/mono-3.0.10.tar.bz2
- tar -xjvf mono-3.0.0.tar.bz2
- cd mono-3.0.0
- ./autogen.sh
- make
- sudo make install
- cd ..
这里应该注意的一点是,./autogen.sh后面是可以带安装路径参数的,默认是安装路径是:/usr/local
安装jexus比较简单,可到其官网下载:http://www.linuxdot.net/。下载链接位于官网右侧“重要下载”一栏中。咱们安装的是Jexus web server V5.3.1 正式版。安装命令如下:
- wget http://www.linuxdot.net/down/jexus-5.3.1.tar.gz <span style="font-family: Arial, Helvetica, sans-serif;">tar -zxv -f </span><span style="font-family: Arial, Helvetica, sans-serif;">jexus-5.3.1</span><span style="font-family: Arial, Helvetica, sans-serif;">.tar.gz </span>
jexus-5.3.1文件夹,该文件夹下,有一个install,运行install解压后,进入
- cd jexus-5.3.1
- ./install
已经安装成功。
查看下jexus的默认配置,配置文件在/usr/jexus/siteconf/default:
配置中都有示例,还是相当好理解的,这里就不多说了。下面我们新在/var/www/default下面新建一个index.html页面,页面包含一些简单的HTML代码,如下 :
- <html>
- <head><title>Hello Jexus!</title></head>
- <body><h1>Hello Jexus!</h1><body>
- </html>
然后回到/usr/jexus,运行如下命令:
- ./jws start
- curl http://localhost/index.html
可以看到,显示的结果如下图:
已经jexus服务已成功启动。
下一篇将介绍jexus服务器下mono的运行.net的web程序。