I have had a long-time problem with Mono and the Mono-based applications that, for reasons I do not understand, come installed by default with Ubuntu.

For those who don’t know about it, Mono:

provides the necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix.

That sounds pretty innocuous on the face of it. But Mono has a potentially fatal sting-in-the-tail for some, and leaves a rather nasty taste in the mouths of many others…

The potential sting is because Mono is developed and supported largely by Novell who are, as we all know so well, in a patent-protection deal with Microsoft. This caused a huge storm when they signed the deal – basically because it gave some “credence” to Ballmer’s “Linux/OSS breaches 235+ patents” line. So, it’s O.K. for Novell to do stuff that implements helps M$’s stuff because they have “protection” from being sued [yeah right – who really believes that one!]. But what about everyone else???

The nasty taste which has always ‘ever-so-slightly’ tainted my use of Ubuntu is that Mono is there only to support applications written in languages and for platforms which are basically Microsoft’s. It encourages software development using systems that are based on technologies almost certainly encumbered by a whole raft of M$ patents. To my mind, there are many great non M$ languages and architectures out there which are almost part-and-parcel of Linux programming and I see no need to bring .NET, ASP or even Visual Basic to my desktop. If I want to write an application, I could use PHP, Python, PERL, C, C++, Java and, of course, many others. Why do I need to endorse and encourage the proliferation of non-free software by relying on M$’s IP and the smell of their stinky patents?

Well, I figured I don’t. So, I thought I’d see what happened if I removed Mono from Ubuntu.

As a test I typed the following (but I didn’t accept the Y/n question before doing some further research):

sudo apt-get remove --purge mono-common

The following packages will be REMOVED

banshee f-spot libart2.0-cil libavahi1.0-cil libboo2.0-cil libflickrnet2.1.5-cil libgconf2.0-cil libglade2.0-cil

libglib2.0-cil libgmime2.2-cil libgnome-vfs2.0-cil libgnome2.0-cil libgtk2.0-cil libgtkhtml3.16-cil

libmono-addins-gui0.2-cil libmono-addins0.2-cil libmono-cairo1.0-cil libmono-cairo2.0-cil libmono-corlib1.0-cil

libmono-corlib2.0-cil libmono-data-tds1.0-cil libmono-data-tds2.0-cil libmono-security1.0-cil libmono-security2.0-cil

libmono-sharpzip0.84-cil libmono-sharpzip2.84-cil libmono-sqlite2.0-cil libmono-system-data1.0-cil

libmono-system-data2.0-cil libmono-system-web1.0-cil libmono-system-web2.0-cil libmono-system1.0-cil libmono-system2.0-cil

libmono-zeroconf1.0-cil libmono1.0-cil libmono2.0-cil libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libtaglib2.0-cil

mono-common mono-gac mono-jit mono-runtime tomboy

This lot removes just three applications from Ubuntu 8.04: Tomboy, F-Spot and Banshee. And they aren’t exactly desktop behemoths either.

The long list of libraries and things that just might break something else looked pretty scary to simply accept without question. So I built a quick Ubuntu Hardy 8.04 VM using Virtualbox and tried it in there first. It seemed to be fine. Nothing else I tried broke. I rebooted the VM and tried loading several applications and it all worked as expected.

So here we go then; to get rid of Mono, Tomboy, Banshee and F-Spot, simply type the following.

sudo apt-get remove --purge mono-common libmono0

(The --purge switch removes the old packages from the package manager’s cache so you actually get the disk space freed up too)

Now I must confess to having used Tomboy in the past. But after a bit of research some time ago I found what I think is actually a better alternative called Zim. It is basically a desktop Wiki application:

Zim is a WYSIWYG text editor written in Gtk2-Perl which aims to bring the concept of a wiki to your desktop. Every page is saved as a text file with wiki markup. Pages can contain links to other pages, and are saved automatically. Creating a new page is as easy as linking to a non-existing page. Pages are ordered in a hierarchical structure that gives it the look and feel of an outliner. This tool is intended to keep track of TODO lists or to serve as a personal scratch book.

I have been using Zim for several months now and am very happy with it.

F-Spot is easily replaced by gthumb which, for me at least, does exactly the same thing: it gets photos from my camera.

I never used Banshee after looking at the UI once. I found Rhythmbox much more obvious and easy to use, and it is already installed as well.

So, to replace the 44 packages (and 3 apps) above with non-encumbered alternatives, simply type:

sudo apt-get install gthumb zim

Of course please check your own system before blindly following my instructions. I checked carefully before removing Mono to make sure nothing was going to break. I would recommend you do the same, and, of course, back up your Tomboy notes first 😉

Tags: gthumb, Microsoft, Mono, Novell, Open Source, Patents, Rhythmbox, Tomboy, Zim