分类: LINUX
2008-05-02 14:59:23
I've been an Arch user for roughly 3 years. I'm pretty much familiar with it all - The way it boots, its configuration and its package management. I've also heard a lot of good things about Ubuntu, and wanted to try it for a long time. So, two weeks ago, I took the plunge. These are my findings.
Installation
I'll have to be frank - I did not install the latest Ubuntu, but used an older version which I had downloaded before. I used the Ubuntu 6.06 LTS CD in order to install the system. I booted the machine with the CD inside, and after a little while I was presented with a graphical interface. It seem to have detected my monitor pretty good, as it gave me a 1600x1200 resolution for my 17" monitor. I started installing the system using the installation wizard. At first I didn't quite understand the process, so I had to press the "Back" button a few times during the partitioning part of the installation. This resulted in the installation wizard crashing right at me. I was a bit puzzled. I started the installation again and this time I did not over challenge it - and It worked just fine. At the end I had the system installed, along with GRUB, which detected my Windows XP installation and added it to the menu by itself.
Upgrading
So, I end up with a Ubuntu 6.06 installed. That's a pretty old horse by now, and indeed, I am reported that there are 520MB worth of upgrades. As it was already late, I decided to go for the upgrade, and left the machine to do it overnight.
After a restful sleep, I wake up and go check on my machine. The upgrades were downloaded, but hardly any of them were installed - A debconf screen was waiting for my input on some package (which I do not recall), which blocked all further upgrades.
This is the first thing which I believe needs improvements. A package installation should not be interactive, according to me (and to my previously installed Arch). A valid solution would be using default values, which exist for the most part anyway (All I did with that debconf screen was pressing the Next button a few times). Also, it should display all debconf screens together at the end of the entire upgrade, so you just finalize some settings at the end.
After waiting for a while, all upgrades are complete and I'm using Ubuntu 6.06.1. Since I'm a desktop user, I'd actually much prefer using Ubuntu 6.10. So, I fire up Synaptic and add a new mirror which contains Ubuntu 6.10. Luckily, Ubuntu has plenty of mirrors, and I was able to find one in my residence (Israel) which resulted in very good download speeds. In Arch, mirrors were a bit more limited. So I perform a dist-upgrade, and apart from some more debconf screens, the upgrade works like a charm. I reboot, and I can see I am using Ubuntu 6.10. Excellent.
Configuration
I now have a fully recent installation. Time to get dirty and configure things to my liking. First of all, networking. I fire up Firefox - Oh goodie, nothing to configure here. That was nice to see, even though my network configuration is one of the simplest around (I use another Windows computer as an Internet gateway, via DHCP).
Next one - Samba. I start searching the menus, can't find anything. I fire up the Add/Remove Programs GUI, a very nice one for installing packages. I search for Samba, and find gsambad, a configuration GUI for Samba. It installs fine, including shortcuts being added to the menus. I fire the GUI up. Wow, that's a mess. It basically spits out every option Samba has to offer, so you can't actually find anything useful there. I start defining some basic settings there, such as the workgroup. I also try to add a few shares. I then look at the generated smb.conf file - It is loaded with garbage. I give it up, and edit the file manually. So, graphical Samba configuration is a no go for me.
I Then try printers - In here, the GUI is so basic it is also rendered useless. Not good.
All in all, perhaps I've missed something there, but configuration is by no means something which can be done by a novice, even in Ubuntu.
Kubuntu
Being the KDE lover that I am, I prefer the KDE desktop rather than GNOME. So I go about and install the kubuntu-desktop metapackage. Everything is installed fine, and I decide to reboot. Unfortunately, when the system boots up again, I am not presented with a GUI at all. It's all CLI. I need to perform a 'debconf kdm' in order to fix that. Again, not something which is trivial to a new user. Once I've done that and got KDE up and running, I wanted to change its resolution. I used KDE's tools to do so, but the settings were not applied - I had to restart X for those. I recall it worked fine in Arch, without restarting.
Package Quality
It definitely feels that the package quality of Ubuntu is sufficient. Konqueror for example, is a lot more stable than it was on my Arch installation. The packages are obviously not the latest and bleeding edge, but they are sufficiently up-to-date, and the seem to be going through a reasonable QA process.
Package Management
Installing Kubuntu, I've also received Amarok 1.4.3. I tried to add my collection to it, but it failed indexing my collection, due to a bug which was fixed in Amarok 1.4.5. So, I wanted to install Amarok 1.4.5. One of Arch's strengths was the ease of building packages. I wondered how to do the same thing in Ubuntu. The entire thing seems a lot more complex than building an Arch package - There are 3 forms of building a package for Ubuntu, each way consists of writing several files, where the absolute minimum is 2 files (please correct me if I'm wrong here). There's a control file which specifies the package's metadata, and a rules file which is in essence a make file. To be honest, after reading Ubuntu's wiki, I still don't quite get how it works. Still, I think Arch's way is more straightforward, using only one file for most packages, a file which includes both the metadata and the commands for actually building the package.
Another issue I've find out in Ubuntu includes metapackages. A metapackage is a way to group a lot of packages together to allow easy installation. For example, installing the kubuntu-desktop package will result in installation of many KDE packages, plus some extra packages which are defined. The metapackage is a nice concept. However, I find its implementation somewhat lacking. From what I've gathered, a metapackage is simply a blank package which *depends* on all the packages it actually installs. So when you install a metapackage, the package manager wishes to satisfy its dependencies, and so it installs all of the packages we really want. The problem starts when something goes wrong - Let's say I accidentally deleted a very important file which is used by KDE. A possible solution would be reinstalling KDE altogether to restore the lost files. This, however, seems impossible to do in a straightforward way - Since metapackages are in essence empty packages, apt is unable to differentiate between a normal package and a metapackage. So reinstalling a metapackage will actually reinstall an empty package - which will result in absolutely nothing. We have to track down its dependencies ourselves, and install them separately. It seems to me that metapackages are nothing but a hack - and no hack should become fixed. A real grouping of packages must be supplied. If any Ubuntu developer is reading this, please take it into consideration.
Summary
So, I've been using Ubuntu for 2 weeks now. All in all, Ubuntu works well. The packages go through a reasonable QA process and the system really is stable. Still, Ubuntu is lacking in several respects. The first one would be that I still do not believe it is user-friendly enough for the average Windows power user. Installing new software is simple and easy, configuring software is still lacking in many respects. For the advanced Linux user, I've seen areas which need improvements, such as the unnecessary interactivity when installing packages, the metapackage issue, and perhaps simplifying the package building process even more. I still find Arch to be simpler in many aspects, and I hope Ubuntu can perhaps learn some valuable lessons from it.