CentOS7通過持續整合包安裝最新的Mono

餘二五發表於2017-11-15

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 路徑加入進去,如下圖
 
[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》。

本文轉自 張善友 51CTO部落格,原文連結:http://blog.51cto.com/shanyou/1541212,如需轉載請自行聯絡原作者


相關文章