Continuous Integration packages
The Mono Project hosts a public Jenkins instance, which attempts to compile distribution packages for major GNU/Linux distributions for every commit made to the public Mono git repository on GitHub.
Requirements
We are building our packages twice, in the most cross-release-compatible way we can manage, for x86-64 processors only at this point in time.
For Debian-derived distributions (any distribution which uses .deb files), you need the GNU C library 2.13 or above - this should cover Debian 7+, Ubuntu 11.04+, Mint 11+, Elementary 0.2+, and a huge number of other distributions.
For Red Hat-derived distributions (any distribution which uses .rpm files), you need the GNU C library 2.17 or above - this should cover CentOS 7+, Mageia 3+, Fedora 19+, openSUSE 12.3+, and a huge number of other distributions.
Installation
Regardless of your distribution, you will need the Mono Project public Jenkins GPG signing key, which package managers require:
http://jenkins.mono-project.com/repo/xamarin.gpg
Debian, Ubuntu, and derivatives
Add the GPG key in a root shell with:
apt-key add xamarin.gpg
Next, add the package repository in a root shell:
echo "deb http://jenkins.mono-project.com/repo/debian sid main" > /etc/apt/sources.list.d/mono-jenkins.list
Update your package cache if necessary.
CentOS, Fedora, and derivatives
Add the GPG key in a root shell with:
rpm --import xamarin.gpg
Next, add the package repository in a root shell:
yum-config-manager --add-repo http://jenkins.mono-project.com/repo/centos/
Update your package cache if necessary.
Usage
Search your package manager for mono-snapshot to find a number of possible packages to install:
[directhex@centossy ~]$ yum search mono-snapshot
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.econdc.com
* extras: mirrors.clouvider.net
* updates: mirrors.clouvider.net
========================== 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-20140807155904.x86_64 : Mono runtime snapshot - runtime (git
: commit 766e8c3)
mono-snapshot-20140807155904-assemblies.noarch : Mono runtime snapshot -
: assemblies (git commit 766e8c3)
mono-snapshot-common.noarch : Common helper tools for Mono snapshot packages
mono-snapshot-latest.noarch : Mono runtime snapshot - latest version metapackage
Name and summary matches only, use "search all" for everything.
Install the mono-snapshot-XXXXXXXXX package for a specific version, or mono-snapshot-latest to install whatever the latest available version is. With mono-snapshot-latest, your package manager will keep updating you to the latest available version whenever it runs.
Whenever you install any snapshot package, the mono-snapshot
utility will be installed alongside it. Run mono-snapshot
to see which snapshot packages are available and installed:
[directhex@centossy ~]$ 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/20140807112602
mono/20140807155904
Calling APP without specifying VER will load the latest version
You can then configure your environment to use the desired version by calling . mono-snapshot APP/VER
- for example, . mono-snapshot mono/20140807112602
(or simply . mono-snapshot mono
). Please note the leading “.
”:
[directhex@centossy ~]$ . mono-snapshot mono
[mono-20140807155904][directhex@centossy ~]$ mono --version
Mono JIT compiler version 3.8.1 (tarball Fri Aug 8 05:39:07 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
Note: On Debian-based distributions, any distribution-provided Mono libraries (such as GTK#) are automatically installed into your mono-snapshot GAC and are available for use. This is not automatic on Red Hat-based distributions.