How to remove Mono from Ubuntu 9.10 Karmic Koala [Updated]

AkhenatenI’ve been mildly intrigued as to why the volume of background noise and character assassination that has surrounded Mono has been on the wane over the last few months. Consequently, I started wondering if there were any obvious reasons for this outbreak of pacifism in what has sometimes seemed like a debating chamber for differing groups of religious fundamentalists.

Some of it is surely to do with Microsoft’s Community Promise made back in July 2009, but I doubt that is really the only reason for the attenuation. I do wonder if Mono might just simply be losing some of its lustre. In August Blackduck reported how the amount of code being written for FOSS projects using C# was pretty negligible at just 1.33% and that growth in C# usage over a 12 month period was virtually zero.

There were also some rather nasty and personal attacks which did nothing to help our community at large nor the reputation of the individuals’ concerned so maybe people have consciously, or subconsciously, decided to just shut-up for a while?

Quite recently Microsoft, along with Intel, announced that they will ship Silverlight on Linux as opposed to using the Microsoft/Novell sponsored Mono project called Moonlight. OK, admittedly this announcement was only for Moblin Linux, but hey, since when has Microsoft ever been transparent about it’s long term objectives or plans? Perhaps, Mono and Moonlight were just too heavyweight for Moblin devices (netbooks and smart-phones typically), or maybe there is more to it. It could be a very good start to a typical Microsoft "Embrace, Extend & Extinguish" strategy. Who knows? But it certainly isn’t exactly a ringing endorsement of Mono and Moonlight is it?

The awkward question: If it’s that easy to port Microsoft Silverlight to Linux, why does the Moonlight project exist at all?

“I’m really clear about our commitment to Moonlight. I see the work we’re doing with Miguel and Moonlight as core to our strategy for delivering implementations for Linux,” says Goldfarb, protesting, perhaps, a little too much. ®

Anyhow, my personal opinion of Mono hasn’t changed much. There are no Mono applications in Ubuntu that make me go weak at the knees and get all excited; far from it in fact:

  • I’ve never really had any need for Tomboy at all and since discovering Getting Things Gnome my jotted notes and todos all go in this great little Python task keeping application anyway. If you have used, or ever wanted to use Tomboy in the past however there is now a clone written in C++ called Gnote. This is in the Karmic “universe” repository and can be installed either from Synaptic, the new Ubuntu Software Centre (now spelt correctly if you use an en_GB locale) or by typing sudo apt-get install gnote.
  • When I last used F-Spot, which was probably back in Gutsy or Hardy days I reckon, it annoyed me that the application wouldn’t automatically delete the pictures off my camera after importing. GThumb did and always has; so no big deal there then. There is also a new kid on the block called Solang that is in the Karmic repos too. I haven’t tried it in anger myself yet but I’ve heard good things from others.
  • Media Players/Managers? “Banshee!” I hear you cry. Well, I’ve never tried it because I don’t have Mono on my Ubuntu desktop or laptops so I can’t say if I like or not as an application. On my Ubuntu machines, the only music player I have tried and actually really liked, is Songbird. There are still a few features missing, but the forthcoming 1.4 release is looking like it will plug some of these gaps. Songbird looks, feels and works fine for my needs.

On the 15th October a very important figure in our community penned his own contribution to this discussion. Jeremy Allison, of Samba fame, wrote a well considered letter essentially calling on the major GNU/Linux distributions to move Mono outside of their default and core repositories. It’s something others, including myself, have discussed before, but likely with a lot less weight than Jeremy’s comments will surely carry.

… I think it is time for the Mono implementation and applications that use it to be moved into the “risky” category, until the patent situation around it is deemed to be truly safe to use by default in Free Software.

Microsoft isn’t playing games any more by merely threatening to assert patents. Real lawsuits have now occurred and the gloves are off against Free Software. Moving Mono and its applications to the “restricted” repositories is now just plain common sense.

Anyway, back to the reason for this post.

In the latest, shiniest, bestest, release of Ubuntu to date, and it really is a cracking release, the desktop version of Karmic Koala (version 9.10) contains two Mono dependent applications in the default install along with the Mono VM and associated libraries etc.

Now, this time, we have 3 ways to go Mono free:

  1. Visit Jo Shield’s blog and get Chicken Little Remix (CLR). Chicken Little Remix (CLR) provides a solution for users who wish to use Ubuntu but would prefer it to not contain any Mono-based software. This 2nd release of CLR, based on Ubuntu 9.10, comes as a livecd with it’s own unique desktop wallpaper and also features replacement applications where appropriate.
  2.  

  3. Use the KDE based Kubuntu instead of Ubuntu, which uses Gnome. (Thanks Mark for pointing out my omission in the comments below)
  4.  

  5. Install the regular Ubuntu distribution and then remove the applications and their supporting packages*. The simple command required goes like this [Update] Thanks to Jo who mentioned the 3 libraries that should also be removed [/Update]:

    sudo apt-get purge libmono* libgdiplus cli-common libsqlite0 libglitz-glx1 libglitz1

    Which should reply with something similar to:

    The following packages will be REMOVED
    cli-common* f-spot* libart2.0-cil* libflickrnet2.2-cil* libgconf2.0-cil*
    libgdiplus* libglade2.0-cil* libglib2.0-cil* libgmime2.2a-cil*
    libgnome-keyring1.0-cil* libgnome-vfs2.0-cil* libgnome2.24-cil*
    libgnomepanel2.24-cil* libgtk2.0-cil* libmono-addins-gui0.2-cil*
    libmono-addins0.2-cil* libmono-cairo2.0-cil* libmono-corlib2.0-cil*
    libmono-data-tds2.0-cil* libmono-i18n-west2.0-cil* libmono-posix2.0-cil*
    libmono-security2.0-cil* libmono-sharpzip2.84-cil* libmono-sqlite2.0-cil*
    libmono-system-data2.0-cil* libmono-system-web2.0-cil*
    libmono-system2.0-cil* libmono2.0-cil* libndesk-dbus-glib1.0-cil*
    libndesk-dbus1.0-cil* mono-2.0-gac* mono-gac* mono-runtime* tomboy*
    0 upgraded, 0 newly installed, 34 to remove and 0 not upgraded.
    After this operation, 47.8MB disk space will be freed.
    Do you want to continue [Y/n]?

NB: This command was tested on a default installation. The purge switch is designed to remove configuration data too. If you have any important information on your system that might be dependent on these applications, please do your research and backup or copy it first. I test the command in a clean Virtual Machine build before using it on a live system: YMMV.

* If you are aware of any other packages that can, or should be removed, please let me know and I will update the post.

Depending on your vigilance or need, you may wish to install the package called Mononono which will keep a look out for you and alert you if an application tries to install any Mono components.

For those of you who do not happen to be scholars of ancient Egyptian history, the picture at the top of this article is of the Egyptian Pharaoh Akhenaten regarded by some as the first Monotheist:

Akhenaten tried to bring about a departure from traditional religion that in the end would not be accepted. After his death, traditional religious practice was gradually restored, and when some dozen years later rulers without clear rights of succession from the Eighteenth Dynasty founded a new dynasty, they discredited Akhenaten and his immediate successors, referring to Akhenaten himself as ‘the enemy’ in archival records.

Image courtesy of Wikimedia under several free licences.

How to remove Mono from Ubuntu 9.04 Jaunty Jackalope [Updated]

SABDFL groks Mono

It’s that time again ;-)

Fortunately, Mono is still quite trivial to remove and has not, apparently, increased its infiltration of the Ubuntu/Gnome code base as one might have been led to believe if you’d read this on the 1st April:

“Mark Shuttleworth, the Benevolent Dictator for Life of the popular Ubuntu Linux distro, has announced his plans to rewrite all of Gnome, X11 and the Linux kernel using the Mono platform…

Ubuntu is Linux for human beings, and, believe it or not, Microsoft employees are human beings too. We think we need to work closer with Microsoft to ensure heterogenous data silo paradigm middleware enhancements can continue to grow. Oh, and they gave me this nice T-shirt.”

As was the case with 8.10 Intrepid Ibex, there are just two applications in the default Jaunty desktop install which depend on Mono: F-Spot and Tomboy.

As an alternative to F-Spot, I happily use the Gnome viewer gThumb for managing the import and deletion of images from our digital cameras. I actually think it is better for a simple reason. It allows me to copy the images off my camera and delete them from the camera at the same time. The last time I tried F-Spot (admittedly quite a while ago now) I could never find a setting to do this.

And for note taking I have been happily using notecase. Although I note [pun intended] that the developer has stopped work on the free version himself the code is available under a BSD license so if anyone wants to pick it up and run with it they can. Anyway – notecase works fine for me and is still in the repos.

There are many other note taking type applications too. Here is what looks to be quite a comprehensive (albeit old) list of them: http://linuxappfinder.com/utilities/notes

But this is just GREAT!

Gnote: Tomboy minus Mono
Whilst I was preparing this article, I came across this on April 1st too. I actually did think it was a joke.

However it seems not; a bored and unemployed (ex Novell/Suse) developer, Hubert Figuière, is porting [has ported] Tomboy to C++ and calls it Gnote.

You can now use a virtually identical application to Tomboy without Mono! (This is still an early development so YMMV).

There is a PPA for Ubuntu here very kindly organised by Vadim Peretokin. I installed it on my intrepid desktop just to see it and it looks exactly the same as Tomboy!

Even better, as it isn’t built on top of Mono, it has fairly meagre requirements too:

sudo apt-get install gnote
[sudo] password for alord:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed
gnote libboost-filesystem1.34.1 libboost-regex1.34.1 libxml++2.6-2
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 1130kB of archives.
After this operation, 3400kB of additional disk space will be used.
Do you want to continue [Y/n]? Y

3.4MB vs. 54.0MB. That’s a decent comparison I think.

OK. The moment you’ve all been waiting for…

To remove that patent-trap-masquerading-as-free-software from your Shiny New Ubuntu Jaunty system simply type:

sudo apt-get purge libmono0 mono-common libgdiplus

[UPDATE]
Thanks to a keen eyed commenter, Lupine, we note that there is another package that lurks hidden and must be explicitly removed. I have added libgdiplus to this command since first publishing. To remove it individually just enter sudo apt-get purge libgdiplus. Thanks Lupine.
[/UPDATE]

Then watch what happens next…

The following packages will be REMOVED
f-spot* libart2.24-cil* libflickrnet2.1.5-cil* libgconf2.24-cil* libglade2.0-cil* libglib2.0-cil* libgmime2.2a-cil* libgnome-keyring1.0-cil* libgnome-vfs2.24-cil* libgnome2.24-cil* libgnomepanel2.24-cil* libgtk2.0-cil* libmono-addins-gui0.2-cil* libmono-addins0.2-cil* libmono-cairo2.0-cil* libmono-corlib2.0-cil* libmono-data-tds2.0-cil* libmono-data2.0-cil* libmono-getoptions2.0-cil* libmono-i18n2.0-cil* libmono-posix2.0-cil* libmono-security2.0-cil* libmono-sharpzip2.84-cil* libmono-sqlite2.0-cil* libmono-system-data2.0-cil* libmono-system-web2.0-cil* libmono-system2.0-cil* libmono0* libmono2.0-cil* libndesk-dbus-glib1.0-cil* libndesk-dbus1.0-cil* mono-2.0-gac* mono-2.0-runtime* mono-common* mono-gac* mono-jit* mono-runtime* tomboy*
0 upgraded, 0 newly installed, 38 to remove.
After this operation, 54.0MB disk space will be freed.
Do you want to continue [Y/n]?

Oh yes please…

To wrap up this post, we’ve been using Jaunty on various devices for some time now. It’s been really stable, boots very fast and is probably the best desktop operating system you can get anywhere and for any price right now. Thanks to Canonical and the rest of the amazing FOSS Community for making Ubuntu and this release happen.

Our Libertus Server Appliances, with the Mono-free Jaunty 9.04 server edition, are available from today.