Mono 3.6.0 发布,此版本从上一个版本开始,总共提交了 878 个commits。自2014 年 3 月 10 日开始,共有66 位贡献者参与开发; 其中有22位首次提交的贡献值,他们修复了 112 个 bug,具体请看《Mono 3.6发布,支持在Mac系统使用Nuget》。 Mono的官方网站也进行了更新,界面清新。其中在下载页面只有OSX下的框架是最新的,其他平台的包还在测试中,可以通过源码安装,也可以通过官方的持续集成包进行安装,可参考文档 Continuous Integration packages

Linux 平台包分两个发行版系列: Debian 系(支持 Debian 7+, Ubuntu 11.04+, Mint 11+, Elementary 0.2+ 等) Red Hat(支持CentOS 7+, Mageia 3+, Fedora 19+, openSUSE 12.3+等)。

下面介绍CentOS 7上安装最新的Mono 3.8.1:

1、添加Mono的 包库源:

把Mono Project public Jenkins GPG signing  导入系统:

wget http://jenkins.mono-project.com/repo/xamarin.gpg

rpm --import xamarin.gpg

yum-config-manager --add-repo http://jenkins.mono-project.com/repo/centos/

2、通过包管理器查找mono-snapshot找到可以安装最新的包

yum search mono-snapshot

[mono-20140816130953][root@localhost jexus-5.6.1]#yum search mono-snapshot
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.grandcloud.cn
 * extras: mirrors.pubyun.com
 * rpmforge: mirrors.neusoft.edu.cn
 * updates: mirrors.pubyun.com
========================================================================== N/S matched: mono-snapshot ===========================================================================
mono-snapshot-20140807112602.x86_64 : Mono runtime snapshot - runtime (git commit 76c34a1)
mono-snapshot-20140807112602-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 76c34a1)
mono-snapshot-20140813035605.x86_64 : Mono runtime snapshot - runtime (git commit 0322d96)
mono-snapshot-20140813035605-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 0322d96)
mono-snapshot-20140813112032.x86_64 : Mono runtime snapshot - runtime (git commit a4f96bc)
mono-snapshot-20140813112032-assemblies.noarch : Mono runtime snapshot - assemblies (git commit a4f96bc)
mono-snapshot-20140813120821.x86_64 : Mono runtime snapshot - runtime (git commit 9c37758)
mono-snapshot-20140813120821-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 9c37758)
mono-snapshot-20140813121150.x86_64 : Mono runtime snapshot - runtime (git commit db3eb16)
mono-snapshot-20140813121150-assemblies.noarch : Mono runtime snapshot - assemblies (git commit db3eb16)
mono-snapshot-20140813125854.x86_64 : Mono runtime snapshot - runtime (git commit e464526)
mono-snapshot-20140813125854-assemblies.noarch : Mono runtime snapshot - assemblies (git commit e464526)
mono-snapshot-20140813130628.x86_64 : Mono runtime snapshot - runtime (git commit 2ceb43d)
mono-snapshot-20140813130628-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 2ceb43d)
mono-snapshot-20140813134928.x86_64 : Mono runtime snapshot - runtime (git commit 37dcfd1)
mono-snapshot-20140813134928-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 37dcfd1)
mono-snapshot-20140813140439.x86_64 : Mono runtime snapshot - runtime (git commit d273a16)
mono-snapshot-20140813140439-assemblies.noarch : Mono runtime snapshot - assemblies (git commit d273a16)
mono-snapshot-20140814031123.x86_64 : Mono runtime snapshot - runtime (git commit 62a15c8)
mono-snapshot-20140814031123-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 62a15c8)
mono-snapshot-20140814053610.x86_64 : Mono runtime snapshot - runtime (git commit 5f5bed4)
mono-snapshot-20140814053610-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 5f5bed4)
mono-snapshot-20140814102557.x86_64 : Mono runtime snapshot - runtime (git commit 5aeec74)
mono-snapshot-20140814102557-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 5aeec74)
mono-snapshot-20140814122203.x86_64 : Mono runtime snapshot - runtime (git commit 33023bf)
mono-snapshot-20140814122203-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 33023bf)
mono-snapshot-20140814131548.x86_64 : Mono runtime snapshot - runtime (git commit 407b816)
mono-snapshot-20140814131548-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 407b816)
mono-snapshot-20140814190650.x86_64 : Mono runtime snapshot - runtime (git commit 844ad76)
mono-snapshot-20140814190650-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 844ad76)
mono-snapshot-20140814192915.x86_64 : Mono runtime snapshot - runtime (git commit 12e4b4f)
mono-snapshot-20140814192915-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 12e4b4f)
mono-snapshot-20140815071644.x86_64 : Mono runtime snapshot - runtime (git commit 31e92f2)
mono-snapshot-20140815071644-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 31e92f2)
mono-snapshot-20140815123851.x86_64 : Mono runtime snapshot - runtime (git commit 230b3bf)
mono-snapshot-20140815123851-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 230b3bf)
mono-snapshot-20140815125921.x86_64 : Mono runtime snapshot - runtime (git commit 5ab34b2)
mono-snapshot-20140815125921-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 5ab34b2)
mono-snapshot-20140816014620.x86_64 : Mono runtime snapshot - runtime (git commit 76efee0)
mono-snapshot-20140816014620-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 76efee0)
mono-snapshot-20140816060806.x86_64 : Mono runtime snapshot - runtime (git commit 557ad88)
mono-snapshot-20140816060806-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 557ad88)
mono-snapshot-20140816072941.x86_64 : Mono runtime snapshot - runtime (git commit eaa343f)
mono-snapshot-20140816072941-assemblies.noarch : Mono runtime snapshot - assemblies (git commit eaa343f)
mono-snapshot-20140816130953.x86_64 : Mono runtime snapshot - runtime (git commit 6986ed5)
mono-snapshot-20140816130953-assemblies.noarch : Mono runtime snapshot - assemblies (git commit 6986ed5)
mono-snapshot-common.noarch : Common helper tools for Mono snapshot packages
mono-snapshot-latest.noarch : Mono runtime snapshot - latest version metapackage
mono-snapshot-XXXXXXXXX 表示特定版本的包, mono-snapshot-latest 是最新版本的包,安装 mono-snapshot-latest,包管理器可以把包更新到最新. 所有的安装包里都带了一个工具mono-snapshot

[root@localhost ~]# mono-snapshot
This script will help you to set up your environment to use a
snapshot package of Mono. To use it, run:

        . mono-snapshot APP/VER

You have the following possible combinations of APP/VER:

        mono/20140816130953

Calling APP without specifying VER will load the latest version

我们看到系统里安装了一个版本20140816130953,

3、yum -y install mono-snapshot-latest

[root@localhost src]# yum -y install mono-snapshot-latest
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.grandcloud.cn
 * extras: mirrors.pubyun.com
 * rpmforge: mirrors.digipower.vn
 * updates: mirrors.pubyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 mono-snapshot-latest.noarch.0.20140816130953-0 将被 安装
--> 正在处理依赖关系 mono-snapshot-20140816130953,它被软件包 mono-snapshot-latest-20140816130953-0.noarch 需要
--> 正在检查事务
---> 软件包 mono-snapshot-20140816130953.x86_64.0.20140816130953-0 将被 安装
--> 正在处理依赖关系 mono-snapshot-common,它被软件包 mono-snapshot-20140816130953-20140816130953-0.x86_64 需要
--> 正在处理依赖关系 mono-snapshot-20140816130953-assemblies,它被软件包 mono-snapshot-20140816130953-20140816130953-0.x86_64 需要
--> 正在检查事务
---> 软件包 mono-snapshot-20140816130953-assemblies.noarch.0.20140816130953-0 将被 安装
---> 软件包 mono-snapshot-common.noarch.0.00000010-0 将被 安装
……
作为依赖被安装:
  mono-snapshot-20140816130953.x86_64 0:20140816130953-0     mono-snapshot-20140816130953-assemblies.noarch 0:20140816130953-0     mono-snapshot-common.noarch 0:00000010-0

使用mono-snapshot 工具看下我们安装好的Mono的最新版本是3.8.1:
[root@localhost ~]# . mono-snapshot mono
[mono-20140816130953][root@localhost ~]# mono --version
Mono JIT compiler version 3.8.1 (tarball Sat Aug 16 16:20:35 EDT 2014)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            sgen
请注意mono-snapshot 前边的 “.”.
4、让Jexus 使用最新的Mono 
修改Jexus脚本把最新的mono 路径加入进去,如下图
CentOS 7 通过 持续集成包 安装最新的 Mono_target
 
[mono-20140816130953][root@localhost ~]# cd /usr/jexus/
[mono-20140816130953][root@localhost jexus]# vi jws
[mono-20140816130953][root@localhost jexus]# service jws restart
Restarting jws (via systemctl):                            [  确定  ]
[mono-20140816130953][root@localhost jexus]#

将Jexus 添加为系统服务的脚本参见《Centos 7.0 安装Mono 3.4 和 Jexus 5.6》。