Installing Mono 3.x in Ubuntu/Debian

oasten picture oasten · Nov 13, 2012 · Viewed 59.1k times · Source

I've recently read that Mono 3.0 has been released with a C# 5 compiler and support for MVC 4 here:

http://www.mono-project.com/Release_Notes_Mono_3.0

and

http://tirania.org/blog/archive/2012/Oct-22.html

For the life of me I cannot work out where to get it from as a package for Linux or even Windows.

This page seems to suggest it's still in Beta:

http://www.go-mono.com/mono-downloads/download.html

I've tried doing a apt-get install mono-complete on Ubuntu 12.10 but it's installed 2.10.8.1.

I've tried installing MonoDevelop 3 on my Windows machine and that's only presented me with MVC 3 projects and appears to be using the .NET framework.

I'm entirely new to Mono and I've Googled everything possible to try and see how this works but am baffled. I'd love to get this working on Linux if possible and try some stuff out.

Can someone shed some light on this or do I need to be looking at building this from source?

Answer

Dominique Goudreault picture Dominique Goudreault · Nov 16, 2012

Here is the complete guide for installing mono 3.0.1

For Beginners who don't know how to get the new Mono 3.0.1 version on Ubuntu 12.04 (Because i'm a beginner and i've been working on this for 3 days before making it work)

Getting root access to install and configure Mono 3.0.1

sudo -s
***type your root password***

Install vim editor

apt-get install vim

Install apache2

apt-get install apache2

Install tools for compiling mono

apt-get install autoconf automake libtool g++ gettext libglib2.0-dev libpng12-dev libfontconfig1-dev
apt-get install mono-gmcs
apt-get install git

Install apache2-threaded-dev (needed for compiling mod_mono)*

apt-get install apache2-threaded-dev

We will return to apache2 configuration later

Making the structure we need for getting the source code

cd /opt
mkdir mono-3.0

Move into that new folder before getting the source code

cd /opt/mono-3.0

Getting the source code from GitHub

git clone git://github.com/mono/mono.git
git clone git://github.com/mono/xsp.git
git clone git://github.com/mono/libgdiplus.git
git clone git://github.com/mono/mod_mono.git

Compile libgdiplus

cd /opt/mono-3.0/libgdiplus
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

Compile mono

cd /opt/mono-3.0/mono/
make clean
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

Compile xsp

cd /opt/mono-3.0/xsp
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

Compile mod_mono

cd /opt/mono-3.0/mod_mono
./autogen.sh --prefix=/usr  (the prefix is very important for Ubuntu 12.04)
make
make install

After the installation of mod_mono, the file mod_mono.conf *as been added to your apache2 folder(/etc/apache2)*

Configuring apache2

Configure the default site of apache ### (optional*)**

vim /etc/apache2/sites-available/default
Modify the line "DocumentRoot /var/www" by "DocumentRoot /var/www/YourFolder" (YourFolder is the folder where you publishing your website!)

Configure the rights to YourFolder (optional*)**

cd /var/www/YourFolder
sudo chown -R root:www-data .
sudo chmod -R 774 .
sudo usermod -a -G www-data <yourusername>

Adding the mod_mono include in apache2.conf

vim /etc/apache2/apache2.conf
Add "Include /etc/apache2/mod_mono.conf" at the end of the file (without quotes!)

Adding the pointer to ASP .NET 4.0 in mod_mono.conf

vim /etc/apache2/mod_mono.conf
Add "MonoServerPath /usr/bin/mod-mono-server4" (without quotes!) under the "If Modules condition"

Restart the apache2 server /etc/init.d/apache2 restart