首页 > 代码库 > CentOS 7 通过 持续集成包 安装最新的 Mono

CentOS 7 通过 持续集成包 安装最新的 Mono

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, langpacksLoading 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 packagesmono-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,

<style type="text/css">.csharpcode, .csharpcode pre{ font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em;}.csharpcode .lnum { color: #606060; }</style>

3、yum -y install mono-snapshot-latest

[root@localhost src]# yum -y install mono-snapshot-latest已加载插件:fastestmirror, langpacksLoading 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 --versionMono 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 路径加入进去,如下图
image
<style type="text/css">.csharpcode, .csharpcode pre{ font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em;}.csharpcode .lnum { color: #606060; }</style>
<style type="text/css">.csharpcode, .csharpcode pre{ font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em;}.csharpcode .lnum { color: #606060; }</style>

 
[mono-20140816130953][root@localhost ~]# cd /usr/jexus/[mono-20140816130953][root@localhost jexus]# vi jws[mono-20140816130953][root@localhost jexus]# service jws restartRestarting jws (via systemctl):                            [  确定  ][mono-20140816130953][root@localhost jexus]#
<style type="text/css">.csharpcode, .csharpcode pre{ font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em;}.csharpcode .lnum { color: #606060; }</style><style type="text/css">.csharpcode, .csharpcode pre{ font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em;}.csharpcode .lnum { color: #606060; }</style>

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