I’ve finally put together a bash script to automatically download, compile and install Mono on Ubuntu. At the time of writing, it installs Mono Should this be outdated by the time you read this, you can simply modify the install script to download the latest files.


I’ve been getting increasingly interested in alternative databases of late. With alternative I mean non-relational databases of course.

There are a number of document / key value stores in development at the moment. They include projects like HBase, CouchDB, MongoDB and much more.

What has really grabbed my attention at the moment is Tokyo Cabinet. It’s a fascinating datastore that promises excellent performance along with great data security features like master-master replication.

This post isn’t about the features of Tokyo Cabinet, it’s about getting it installed so you can start playing with it yourself. The Igvita blog has a great write-up about why Tokyo Cabinet is relevant, so head over to Tokyo Cabinet: Beyond Key-Value Store for the juicy details. Once you’re impressed, head back here to install it and start playing!


The Mono team has just released Mono This release is of particular significance because it contains support for ASP.NET MVC. That’s great news for me as I am now thoroughly addicted to MVC.

Mono will install using the instructions in my existing tutorial, but I did have some trouble compiling the new release on my own server.

In particular, I had a SIGSEGV error while compiling Mono. I got around that by updating my system. So  make sure that update your system before compilation using “apt-get upgrade”.

Secondly, I ran out of memory while compiling again. It seems that as the mono documentation gets bigger, the memory required for compilation just gets more and more. I managed to compile with 450MB of free memory this time.

So head on over to my tutorial on Installing Mono on Ubuntu and give it a go yourself.

Synaptic and Nautilus running on VistaIf you're a Windows user and you've been meaning to mess around with Linux (particularly Ubuntu), you're now very much in luck.

Claudio César Sánchez Tejeda has put together a CoLinux package of Ubuntu 8.04 Hardy Heron called Portable Ubuntu.

CoLinux allows you to run a Linux operating system that cooperates with your existing Windows installation. This means that you don't have to dual-boot or fire up a Virtual Machine in order to experiment with Linux anymore. You can run Linux almost the same way you would run any other Windows application. And to sweeten the deal, any Linux app you run in this environment will integrate into your Windows desktop, thus allowing you to overlap Linux apps with Windows apps. It even incorporates seamless copy and paste.

CoLinux clearly beats the pants of virtualization and finally makes it extremely easy to test the waters with Linux as a Windows user.

This is all possible because of the modified CoLinux kernel which cooperatively schedules resources with the Windows NT kernel, rather than having the computer resources delegated by the host computer. The desktop integration is possible because of Xming, a Windows implementation of the Linux X Window server.

Installing Portable Ubuntu

Installation is straightforward. Simply download the Portable Ubuntu archive from SourceForge here, extract it to a folder and run the run_portable_ubuntu.bat file. Portable Ubuntu will even run from a Flash drive on any Windows machine you stick it in.

After a couple of seconds or so you'll get a splash screen while the Ubuntu operating system boots up in the background. Once that is done you'll have the Ubuntu taskbar at the top of your screen from which you can launch and install Ubuntu applications. It only works on 32bit systems though, if you're on a 64bit Vista or XP system you're out of luck. What is also awesome about this is that you don't even need to configure an internet connection, it will piggy back of your Windows machine's connection.

If you're planning on installing software and messing with your Ubuntu system you'll need the root password: 123456

Installing Mono

Mono will install successfully using my existing instructions here, but only if you increase the drive space!

When just installed your Ubuntu drive space will be limited to about 400 MB. This obviously isn't enough to install a lot of software in, so if you plan to install Mono you'll want to extend the drive image size. I've put together a little tutorial on how to do this here.

Once that's sorted and you've gotten Mono installed, have a look at getting BlogEngine.NET installed from the instructions here.

And who knows, when you see it all work painlessly for yourself you might be hosting your next blog on an inexpensive Linux VPS before you know it :)


If you're hosted at TekTonic like I am on a Ubuntu 8.04 VPS, you may have noticed that your /var/log/auth.log file is empty.

According to the support forums, this is due to a VPS template issue regarding Parallels. Login attempts are actually being logged, just not in the right place due to a missing slash in the /etc/syslog.conf file.

To fix the problem, edit the syslog.conf file:

$ nano /etc/syslog.conf

You'll notice a number of places where the log file location is missing a slash between log and the filename. This causes a path like /var/log/auth.log to become /var/logauth.log.

See below:

auth,authpriv.*          -/var/logauth.log*.*;auth,authpriv.none          -/var/log/syslog#cron.*                  -/var/logcron.logdaemon.*                        -/var/log/daemon.logkern.*                          -/var/log/kern.loglpr.*                           -/var/log/lpr.logmail.*                          -/var/log/mail.loguser.*                          -/var/log/user.log

To fix, simply insert a slash (/) after the log part of the path in each entry that starts with /var/log but does not have a slash after /var/log part.

So an entry that looked like -/var/logauth.log becomes -/var/log/auth.log

There should be more stuffed entries lower down into the file, you may as well fix them too.

After saving the changes, restart the logging daemon with the following command:

$ /etc/init.d/sysklogd restart

To test that it has worked, type the following at the shell prompt:

$ tail -f /var/log/auth.log

Then open another SSL session and attempt a login. You should see the login attempt being logged in your already open session.

The Novell guys have pushed out another release of Mono, and I've just updated my VPS.

I'm glad to report that everything works great with BlogEngine.NET on Ubuntu. I've updated my instructions for installing Mono on Ubuntu to include the latest release.

If you haven't given Mono a go yet, what are you waiting for?

A while ago I did a tutorial on installing Mono 1.2.6 on Ubuntu. As it turns out, installing Mono 1.9.1 follows the exact same process. You can thus use the 1.2.6 tutorial as is, just replacing the version numbers in the files you need to download with the corresponding 1.9.1 versions. The only notable exception is mod_mono which is only version 1.9. All full list of exact file locations is available from here: http://ftp.novell.com/pub/mono/sources-stable/

I haven't yet tested the installation procedures on Ubuntu 8.04, but I assume they'd be pretty much the same. If I'm wrong in that assumption, please let me know.

I've had some requests for a tutorial on installing BlogEngine.NET on Linux (and in particular Ubuntu).

Getting BlogEngine.NET itself to run is the easy part, the hard part is getting the latest release of Mono compiled from source on Ubuntu and getting mod_mono and apache2 configured together.

So to that end I'm starting a series of tutorials, beginning with the installation of Mono 1.2.6 from source on Ubuntu 7.10 (Gutsy Gibbon). These instructions should also work on Ubuntu 6.10/7.04. The next tutorial will be focused on installing BlogEngine.NET itself.

Here's the first tutorial: Installing Mono from source on Ubuntu 7.10 (Gutsy Gibbon)

If you should have any issues with the tutorial, either contact me directly or add a comment on this post, and I'll attempt to guide you through any problems you may have. Any feedback should also help in creating a troubleshooting section for the tutorial to help others out that may have the same issues.

Mossblaser has uploaded a stunning UI design concept for the upcoming Ubuntu release. I hope the Ubuntu folks take note, as it is nicely polished and in line with what the other competing operating systems are doing.

On the design discussion thread someone was moaning about the font choice making the interface look un-Linux like. Personally I think that's one of the best improvements of the design. The default Linux font is just plain icky, and in my opinion, anything that makes the operating system look less like Linux is probably going to improve the adoption rate amongst people who are used to other commercial operating systems (you know, those than can afford to pay professional graphic designers).

Ubuntu 8.04 GUI Design Idea by ~Mossblaser on deviantART

This server was down for about half an hour today as I managed to hose my Ubuntu installation with an upgrade.

The simple apt-get upgrade command functioned as expected, but after a reboot I was no longer able to connect to my server, nor was the apache server accessible either. This coincided with the realization that backing up the VPS before the upgrade would not have been a bad idea. Too late for that.

Thankfully I have a fantastic VPS host (TekTonic), and Jason from support managed to sort everything out in a matter of minutes. I wish I could tell you what he actually did, but all he mentioned was that no devices were being detected and he just tweaked some config files.

If you need a virtual private Linux server, I'd definitely recommend TekTonic. At $15 a month and excellent support, you can't go wrong!

I am a software developer / architect currently interested in combining .NET technologies with open-source operating systems. 

I am a member of the open-source BlogEngine.NET development team and focus mainly on ensuring Mono compatibility for the project.



At StayUnlimited Cape Town accommodation we help you choose from and book guest houses, self catering apartments, bed & breakfasts, luxury villas and hotel accommodation.