在Linux Mint13下编译安装mono运行时

由于mono的开发速度现在更新很快,然而在Linux上,它的二进制安装包更新相对较慢,因为一些比较新的Linux发行版已经自带了一些基于mono csharp开发的工具,例如tomboy,一个便签工具,还有一个非常有名的音乐播放工具banshee。

在Linux Mint13下编译安装mono运行时_第1张图片

对于一个技术发烧友来说,总是希望能第一时间体验mono每一次发布带来的新特性,例如Code Contract,async,asp.net mvc,引入Microsoft提供的EntityFramework,SQL Server Provider等,以及其他一些对于开发人员关系不是很直接的GC性能调优。另外还有一些很有意思的特性,比如csharp scripting。

接下来我就介绍下我在本地怎样编译mono运行时的整个过程,还包括编译最新的MonoDevelop IDE。

1. mono运行时的整个repository都放在github上,所以我们首先通过git把代码全部更新到本地

比如可以在Home下新建一个目录叫csharp,运行如下命令

cd ~/csharp

git clone git://github.com/mono/mono.git

2. 等代码全部更新到本地后,csharp目录下会多出一个目录叫mono;在新立得管理器中安装官方源里最新版的mono开发环境,mono-mcs mono-gmcs。这是因为mono运行时的有些代码还是用csharp写的,虽然它的metadata system是用C写的。所以在编译的时候仍然需要本地必须先有一个现成的Csharp编译器。

3. 切换到mono目录

cd mono

./autogen.sh --prefix=/usr/local

prefix参数就是指定mono运行时的安装目录,现在我们把它安装到/usr/local下,否则会覆盖掉老的运行时,搞不好系统里的原本的一些应用程序就不好用了。

然后执行

sudo make EXTERNAL_MCS=/foo/bar/mcs EXTERNAL_RUNTIME=/somewhere/else/mono; sudo make install

其中EXTERNAL_MCS为本地已经安装的mcs目录一般为/usr/bin/mcs,EXTERNAL_RUNTIME为mono的目录一般为/usr/bin/mono

如果编译全部通过的话,大概半小时就安装好了。另外在readme里还提到了一种更有风险的方法,就是不在本地预装一个mono compiler,而是运行一个脚本下载一个mono lite也就是mono编译器的裁剪版,然后用这个来编译mono运行时。详细细节可以参见源码文件夹中的readme。

另外还有很多编译选项,也可以参考这个readme。

我本地机上的/usr/local/bin在$PATH中的优先级更高,所以默认新安装的mcs成了默认选项

mcs --version

Mono C# compiler version 3.0.11.0
另外我还安装了最新的monodevelop,长时间用VisualStudio习惯了,发现没有自动提示很难写代码,效率低下。

在Linux Mint13下编译安装mono运行时_第2张图片


你可能感兴趣的:(mono)