Saturday, July 4, 2009

Mono 2.4 Adventures

I ended up writing a shell script (mostly copy pasting from this blogpost containing building instructions) that wgets and compiles Mono 2.4 including MonoDevelop.

I added it to the github repository (tools/get-and-build-mono.sh).

Turns out that using checkinstall instead of the classic 'make install' is a big mistake, as it creates debs and exposes my shiny new Mono 2.4 to the whims of 'apt', which promptly overwrites it on the first update. I should probably learn more about the Debian package system and apt, but right now simply putting everything in /opt/mono-2.4 and recompiling when needed (the script hopefully can now run unattended) works well enough for me.

Better way to install Mono 2.4

Found at this address. Advantages: installs alongside "official" Mono.

Thursday, July 2, 2009

Building Mono and MonoDevelop from source on Ubuntu 9.04 64bit

Ok, I am officially fed up with the fact that the default MonoDevelop install on Ubuntu 9.04 isn't really able to do debugging.

Following this blog I found information on how to build Mono from sources. Things worked, with one minor glitch - I tried using 'make -j2' to use both cores, but compilation failed. Using only one core worked fine.

I also used checkinstall to make sure that 1) I can uninstall everything I compile cleanly and 2) I have .debs to reinstall later quickly if needed.

Now I need to compile Gtk#. Prerequisites:

sudo apt-get install libpango1.0-dev

sudo apt-get install libatk1.0-dev

sudo apt-get install libgtk2.0-dev

sudo apt-get install libglade2-dev

sudo apt-get install libgnomeui-dev libgnomecanvas2-dev libgnomeprint2.2-dev libgnomeprintui2.2-dev libpanel-applet2-dev libgnome2-dev

Compile and install gtk# (from http://ftp.novell.com/pub/mono/sources/gtk-sharp212/gtk-sharp-2.12.8.tar.bz2 for instance).

mono-addins (from http://ftp.novell.com/pub/mono/sources/mono-addins/mono-addins-0.4.tar.bz2)

gnome-sharp (http://ftp.novell.com/pub/mono/sources/gnome-sharp220/gnome-sharp-2.20.1.tar.bz2)

mono-tools (http://ftp.novell.com/pub/mono/sources/mono-tools/mono-tools-2.4.tar.bz2)

sudo apt-get install libncurses5-dev

mono-debugger (http://ftp.novell.com/pub/mono/sources/mono-debugger/mono-debugger-2.4.tar.bz2)

monodevelop (http://ftp.novell.com/pub/mono/sources/monodevelop/monodevelop-2.0.tar.bz2)

sudo apt-get install mozilla-dev (not sure this is actually required, it solves an error on my system).

monodevelop-debugger-mdb (http://ftp.novell.com/pub/mono/sources/monodevelop-debugger-mdb/monodevelop-debugger-mdb-2.0.tar.bz2)

nunit (from http://sourceforge.net/projects/nunit/files/NUnit%20Version%202/NUnit-2.4.8-
src.zip?download)

I ended up compiling nunit from source, using nunit-console.exe, nunit.core.dll and nunit.framework.dll as references in the test project and running nunit-console using something like:

mono ./nunit-console.exe Synpl.Test.Core.dll

to run my tests.