前言
Ubuntu 10.10 自带了 Mono 2.6.7。而目前最新版本是 Mono 2.8.2。由于 Ubuntu 操作系统中的“阿贴便笺”等软件是用 C# 开发的,因此它们依赖于 Mono 。为了不破坏 Ubuntu 操作系统中这类软件,我们需要并行地安装 Mono 2.8.2,具体做法是安装到 /opt/mono-2.8.2 目录下。这样两个版本的 Mono 就可以共存了。
准备工作
先准备一下编译环境,使用如下的命令来安装:
ben@ben-m4000t:~$ sudo apt-get install build-essential automake libtool mono-complete gendarme subversion libpng-dev libtiff-dev libgif-dev libjpeg-dev libexif-dev autoconf bison flex libcairo-dev libpango1.0-dev
上面的 build-essential 软件包是基本的编译环境,包括 C/C++ 编译器。而 mono-complete 是 Mono 的编译环境,包括 C# 编译器。Ubuntu 操作系统默认安装的是 Mono 的运行环境,并不包括编译环境。你没有看错,我们想从源代码编译 Mono 2.8.2,先要安装一个操作系统默认提供的 Mono 编译环境,对于 Ubuntu 10.10 操作系统来说就是 Mono 2.6.7 的编译环境。Mono 的源代码核心部分是用 C/C++ 语言编写的,可能还有一部分是用汇编语言编写的。但是还有一大部分,比如 .NET Framework Base Class Library 之类的,是用 C# 语言编写的。所以说,从源代码编译高版本的 Mono,需要先安装低版本的 Mono。(这句话不正确,请参阅:从源代码编译 Mono 2.8.2 是否需要低版本的 Mono)
从源代码编译 Mono 2.8.2
现在让我们从 Mono 的源代码自己编译一个吧:
ben@ben-m4000t:~$ cd src ben@ben-m4000t:~/src$ wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.8.2.tar.bz2 --2011-01-07 10:02:49-- http://ftp.novell.com/pub/mono/sources/mono/mono-2.8.2.tar.bz2 正在解析主机 ftp.novell.com... 130.57.1.88 正在连接 ftp.novell.com|130.57.1.88|:80... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度: 31292886 (30M) [application/x-bzip2] 正在保存至: “mono-2.8.2.tar.bz2” 100%[=============&