2006-07-03

Fedora on VMWare on Ubuntu

I've felt bad for some time now that I'm behind the times when it comes to virtualization. It's obviously potentially very useful to any developer. And with Intel Macs and Apple currently advertising Parallels Workstation to prospective switchers, virtualization is pretty mainstream by nerd standards.

And still I'd been waiting for it to become easy enough for me to try.

You might be wondering why I think I'd have difficulty installing or using a product that Apple recommends (even though it's a potential competitor's product), but my Macs are all still PowerPC, and my Ultra 20 is amd64 and, somewhat foolishly given the current state of the onion, I opted to install Ubuntu/amd64 on it. So Parallels' i386 .deb is useless to me. I'm also a little put off by the fact that when I tried to download the Parallels 2.1 Linux installation guide, Ubuntu's evince(1) couldn't display it. "Error 3", I'm told, somewhat unhelpfully. (Getting ahead of myself, Fedora/i386 failed to install the .rpm with "Missing dependency: libXft.so.1 is needed by package Parallels", and likewise failed to display the PDF installation guide.)

As for VMware, I may have mentioned before my disappointment that VMware Player didn't work out of the box on Ubuntu 5.10, and I may also have mentioned my disappointment that things didn't seem to have gotten any easier with Ubuntu 6.06. Specifically, if you choose "VMware Player" in "Add/Remove Applications" (easy enough so far), you're shown the following text:

VMware Player

Free virtual machine player from VMware The free VMware Player lets you run pre-built virtual machines on your desktop.You can run multiple operating systems side-by-side, easing the process of software development, testing, and evaluation.Virtual machines developed in VMware Workstation, ESX Server, or VMware Server can be run in VMware Player.To run the VMware Player, just run /usr/bin/vmplayer from within X.

Note: You will also need the VMware Player kernel modules to run vmplayer. These can be built from source from vmware-player-kernel-source, or you can install a pre-built vmware-player-kernel-modules package for your kernel.

Version: 1.0.1-4

I don't know about you, but I found that note pretty off-putting. Yeah, building kernel modules: that sounds like fun.

It turns out that if you pretend the note isn't there and just install anyway, you're automatically given suitable pre-built packages. So there's actually no hassle. VMware Player just appears on your "System Tools" menu, and it works just fine.

I've no idea why they went out of their way to put people off in the package description.

Anyway, the next problem is that if you go to VMware's web site and want to download a RedHat image you'll find that RedHat want you to register for a trial. Luckily, thoughtpolice.co.uk offer a selection of images for hassle-free distributions. I tried the Fedora Core 5 one, because I wanted to test the software.jessies.org RPMs.

Performance is pretty good, though graphically the guest OS runs slightly more sluggishly than the host OS did before I installed the non-free NVIDIA drivers, which can make the guest quite uncomfortable to use other than on the command-line. Using Firefox to surf the web isn't obviously different from the host OS, but trying to start something from the "Applications" menu can be quite tricky, with the selection highlighting lagging behind the mouse pointer. I certainly couldn't imagine doing anything more serious than a bit of testing.

The guest OS' clock is wrong, despite me telling Fedora to use NTP. I've no idea why.

A particularly annoying problem is that there's no obvious way to make clipboard transfers in or out of the virtual machine. That's really quite annoying even when just playing, and would be crippling if you were really trying to use both OSes.

It's pretty cool to be able to close the VMware Player window, stop the virtual machine, but then come back later (even after the host OS has rebooted) to exactly where I left off. I can reset the guest OS to its original state, too, by removing the ".vss" file. There's nothing in the interface for explicitly making machine state snapshots, though, or reverting to earlier states. Which seems a shame. Presumably the paid-for version has this.

I find it offensive that Apple's QuickTime Player that ships with Mac OS is full of grayed-out menu items saying, in effect, "you're not really welcome to use this OS you think you've already paid for, but give us more money, you hateful plebs, and maybe then we'll consider letting you use the rest", but the good thing about that is that at least you can see what you're missing. In the case of VMware Player, which is effectively a demonstration version of commercial software, you'd think it would make sense for the demo version to let you explore all the full version's functionality, even if you can't use it all.

So that's what I think of VMware Player. What about Fedora?

I hadn't used an RPM-based Linux since about 1998. I hated it. Debian, for all its faults ("would sir like stale Debian or broken Debian?"), restored some of my faith in free Unixes. RedHat was just one long nightmare of manual package dependency resolution. If it hadn't been for the desire to test our RPMs, I'd never have thought of trying it again, even though I've heard of yum.

Also, for some reason, amongst the people I know, Fedora seems to attract the KDE users. That was another reason I'd assumed I wasn't missing anything. The default, though, seems to be GNOME, so those people must have deliberately inflicted KDE upon themselves.

Fedora's boot process looks a bit nicer than Ubuntu's. Ubuntu doesn't have a fancy graphical lilo/grub stage, and when it starts booting proper, it's in some ugly low-res mode with dark brown text on a black background. I'm sure the coprophiles in the audience love that, but for normal people it's not so great. Fedora has a plain Mac OS-like display while loading, but has a disclosure triangle that lets you see something like what Ubuntu shows by default. Neither, as far as I can tell, let you see the full unadulterated Linux boot noise. (But then you wouldn't guess how to see the full output on Mac OS. It makes you choose ahead of time by holding down command-v before the graphical boot starts.)

Fedora's default desktop is a lot less brown than Ubuntu's (again, scatologists may disagree as to whether this is really an improvement), and there's a better range of available background images. (One flaw is that it has the worst-ever icon for Firefox. I had to wait for a tooltip to convince myself it was a web browser. I don't know why the various distributions go out of their way to re-brand Firefox when Firefox's own logo looks fine at a variety of sizes, and is pretty well-known even in the general population. The number one problem I see non-Mac people have when trying to use my Mac? They can't find the web browser because there's no IE or Firefox icon on the desktop.)

From brief use, though, Fedora's an unconvincing proposition.

The first thing I noticed is that "Package Updater", the equivalent of Ubuntu's "Update Manager", is really slow. It's probably just that their servers are slower than Ubuntu's, but it makes a difference to the end user.

I also found that at the moment, for example, I'm unable to install the updates on offer because it's unable to resolve dependencies. I don't know how typical this is of Fedora, but Ubuntu has behaved perfectly in this area. (You'll also remember that I failed to install the Parallels .rpm because a dependency couldn't be resolved. So either I'm really unlucky, or Debian-based systems still have nothing to worry about.)

Fedora's "Package Updater"'s display of "update details" is exceptionally weak, too. It just shows the version numbers of the current and new packages. Ubuntu shows the package description (in case you don't even know what the package is) and the relatively readable changelog.

Fedora's "Package Manager", equivalent to Ubuntu's "Add/Remove Applications", is similarly unappetizing. It may have a GUI, but it's about as easy to use as dselect(1). In fact, it's very much like dselect(1). Ubuntu has something similar (but still better) in "Synaptic Package Manager", but for simple use you don't need to bother with all that. I hadn't really appreciated Ubuntu's "Add/Remove Applications" before, but I do now. Not only is it much easier to use and much faster, it also has stuff I'd actually want to install.

Fedora disingenuously talks about their Java development packages as if Java development stopped in 2003 and 1.4.2 was still the latest version. Worse still, they warn against installing Sun's RPM because Fedora's unfinished Java conflicts with Sun's package and "Sun Java might disappear from an installed system during package upgrade operations". Great. For Java developers and users of Java applications, Debian-based distributions are currently the place to be in the Linux world.

The one other program I got to play with is system-install-packages(1), the RPM equivalent of GDebi. Like the other tools, it's weak in terms of what it tells you about the package. GDebi is streets ahead.

On the bright side, Fedora 5 has a newer kernel than Ubuntu 6.06, and I'm told that if you care about NFS, you'd much rather have Fedora 5's 2.6.17 than Ubuntu 6.06's 2.6.15. SELinux might also be a consideration. Most of the GNOME desktop stuff is the same between the two.

Personally, I saw no reason to use Fedora as anything but a guest OS, and several reasons not to want to give up Ubuntu.