Choosing Your Linux Distribution

For enterprise servers, the choices are (basically) easy: Red Hat Enterprise Linux, SUSE Linux Enterprise, or Ubuntu Server – all very good environments with good support from their companies and supported by various hardware manufacturers. What about your desktop?

The choice is usually easy: most of us choose one of the common distributions – like Fedora, OpenSUSE, Ubuntu, Debian, or Linux Mint. What if you want to stretch a little – try something more avant-garde?

You must define your boundaries – what do you want to have or to accomplish? Here are some possibilities:

  • Do you want to build the software from source?
  • Do you want extensive packages already built?
  • Do you want to start from a minimal system and build up?
  • Do you want run on old or minimal hardware?
  • Do you want stable releases or a rolling release?
  • Do you want a full-featured desktop?
  • Do you want to run Linux?
  • Do you want to run Flash, MP3, DVDs, etc.?
  • Do you want to configure everything yourself?
  • Do you want to build everything yourself?
  • Do you want a special purpose distribution (e.g., penetration testing, multimedia, scientific, etc.)?

I find myself in the situation of trying to fix some hardware which requires installation of a new system – thus, I thought I would try something new. My criteria are:

  • Support for lots of packages
  • Everything mostly works on install
  • Window manager other than GNOME or KDE
  • Good security
  • Good support for Java, DVD, MP3, and Flash
  • Not mainstream
  • Actively supported and with active community

So far, the choices seem to be:

Almost all of these are based on Debian unstable or testing; Sabayon is based on Gentoo, and LFS is based on nothing at all…

I’ve always wanted to try a Linux that had the equivalent of FreeBSD’s ports tree…

Linux Mint new version: Debian Edition

Linux Mint announced that there is a new version, released today, called Linux Mint Debian Edition (LMDE).

According to the documentation, LMDE is based on Debian Testing, which becomes the next Debian release (currently Debian Squeeze). Testing is the version of Debian where “release testing” occurs, prior to a cutover to an actual release.

However, testing does not receive security updates the way the current release does. When Debian 5.0 (Lenny) was released, the Security Team stopped providing security updates to testing to better allocate their resources. From all indications, this “temporary” suspension continues two years later.

Linux Mint also comes in versions with various desktops, including KDE, GNOME, LXDE, and Fluxbox. Too bad there isn’t a good distribution with Window Maker as the main windowing environment – I use Window Maker when I want a low-memory environment (and GNOME or KDE is too much).

Restoring Data for GNOME Evolution

Evolution is the personal information manager (PIM) for GNOME desktops, and includes Palm integration, todos, memos, contacts, email, and calendar.

Recently, I migrated from one desktop to another, and moved my data from my home directory over. Most applications were perfectly happy to find their data from their hidden directories preconfigured for them (VirtualBox was one of these).

Evolution refused to recognize the data as it was copied, and started by asking for all of the relevant information to set up a new mail account. To copy the data, it is necessary to first backup all information using Evolution’s backup process (from the File menu). This backup file can then be transfered to the new machine and restored. However, passwords are not restored as a part of this process; passwords are not included in the backup.

The passwords can just be re-entered again if necessary. If you’ve forgotten them (as I did) you can pull them from the GNOME keyring using the Seahorse application found in every GNOME installation. You can run seahorse from the command line or run it from the menu (inUbuntu Karmic Koala: Applications > Accessories > Passwords and Encryption Keys).

Patrick Ahlbrecht over at onyxbits.de has an excellent article about recovering the passwords from Evolution. Older versions of Evolution stored the passwords using base64 encoding in a plain text file (i.e., not encrypted at all).

Next time one saves passwords in an application, think about that base64 encoded password file…

Renaming a host (UNIX, OpenVMS)

Renaming a host is not, in general, a pleasant experience. The general requirement is that you must find everywhere that your hostname is specified and change it.

In OpenVMS, this can be an extensive process, and even require relicensing if you have licenses that depend on your hostname. It can also require rebooting of an entire VMS cluster if you miss changing a parameter. The full details are in the VMS FAQ such as this one (dated from 2001) from faqs.org or this one from HP (undated). Hoffman Labs has a copy from September 2006; there is information on changing a node name in section 5.7.

Not that in changing the OpenVMS hostname in a cluster, you must change the SCSNODE parameter (which changes the cluster node’s nodename). If you change the SCSNODE parameter, you must change the SCSSYSTEMID as well or the entire cluster will refuse to function until it is reconfigured. The cluster tracks the pairing between these two parameters, and if the pair changes, then the cluster stops working normally.

For UNIX in general, one way to do it is to go to the /etc directory as root and run a search:

$ su -
Password:
# cd /etc
# find . -type f -print | xargs grep -i myhost

After running this, change all of the instances of myhost that is found.

This is the way to change hostnames in Solaris, including Solaris 9 and Solaris 10. Debian and derivatives (including Ubuntu and Linux Mint) and HP-UX make it simpler.

In Debian, there is a file called /etc/hostname. This will contain the current setting of the hostname. Change this to your desired new hostname, then run the shell script /etc/init.d/hostname.sh.

In HP-UX, change to root and run the program set_parms with the hostname option:

# set_parms hostname

For all of these possibilities, the best thing to do is to reboot afterwards: this will test the new setup as well as change any in-memory hostname settings.

Changing a hostname is a drastic measure, and will include much in the way of system modification and updates. Changing the actual hostname is very likely only the beginning; there may be clients that are set up to contact the host, and any services that the server provided (e.g., NTP server, FTP server, web server, NIS server, etc.) will require reconfiguration on the clients to use the new hostname.

In summary, the very best thing to do is to get the name right in the first place.

Powered by ScribeFire.

Keyspan Drivers and Linux (Debian/Ubuntu/Mint)

The drivers for the Keyspan USB-Serial Adapter are in the mainline kernel (as of 2.6.x), as Keyspan notes. However, the drivers are (according to Keyspan) not in the Debian or Ubuntu kernels.

This is only partly true: Debian refused to use the Keyspan drivers due to their license; the fact that Keyspan drivers were missing from the latest Ubuntu kernels is a bug (#334285).

Since Linux Mint is based on Ubuntu, one can only hope that the kernel bug is fixed soon; I’d wanted to use my Keyspan driver with my laptop running Linux Mint 7.

Disabling compcache in Ubuntu Jaunty (and Related Swap Errors)

If you have installed Ubuntu recently, you may have compcache enabled. This is a memory-based swap cache and its presence is unnecessary and unexpected in a permanent installation (it was designed for LiveCD operations). There is a bug report about compcache being enabled, along with directions on how to remove it.

This bug can also be seen if you are seeing errors like these:

Mar 6 17:27:29 server kernel: [14438.135859] compcache: Error allocating memory for compressed page: 60594, size=4096
Mar 6 17:27:29 server kernel: [14438.135871] Write-error on swap-device (254:0:484752)
Mar 6 17:27:29 server kernel: [14438.136813] allocation failed: out of vmalloc space - use vmalloc= to increase size.
Mar 6 17:27:29 server kernel: [14438.136824] compcache: Error allocating memory for compressed page: 60595, size=2093
Mar 6 17:27:29 server kernel: [14438.136835] Write-error on swap-device (254:0:484760)
Mar 6 17:27:29 server kernel: [14438.137088] allocation failed: out of vmalloc space - use vmalloc= to increase size.
Mar 6 17:27:29 server kernel: [14438.137098] compcache: Error allocating memory for compressed page: 60596, size=4079
Mar 6 17:27:29 server kernel: [14438.137108] Write-error on swap-device (254:0:484768)

You can also see it when you print swap information with the command swapon -s – if compcache is enabled, one of the swap entries will be “ramzswap”.

To disable compcache completely, do this:

rm -f /usr/share/initramfs-tools/conf.d/compcache && update-initramfs -u

The file compcache contains this line – which is what enables (and sizes) compcache:

COMPCACHE_SIZE="25%"

This was summarized nicely in this email on the ubuntu-users mailing list in February of this year.

Installing SmartEiffel in Ubuntu Jaunty

Turns out that SmartEiffel has not been a part of the Ubuntu repositories since Dapper, per this bug report. The version of SmartEiffel in CVS is 2.4, the most current is 2.3.

However, to this day the problem remains: SmartEiffel will not compile under Ubuntu direct from source. The Ubuntu bug report states FTBFS (which turns out to mean Fails To Build From Source – clear, eh?).

The fix is to remove optimization from the configuration – switching the flags from -O2 to -O1. Follow these steps to get SmartEiffel working:

  • Unpack the archive and change into the directory it creates.
  • Add ${PWD}/bin to the current path: export PATH=${PWD}/bin:$PATH
  • Run make interactive.
  • Press the Enter key to get the menu.
  • Select item 2 (Choose the C compilers and options for each C mode).
  • Choose boost (the normal default)
  • Change the C compiler options and the C++ compiler options from using -O2 to using -O1
  • Return to the previous menu.
  • Return to the previous menu (again).
  • Choose Write the configuration file to disk.
  • Now choose Install SmartEiffel.

Making these changes should result in a successful build of SmartEiffel. However, despite the success, this does not in actuality install SmartEiffel into /usr/local or other recommended locations; it remains in the current directory.

To actually install SmartEiffel into the system, you’ll have to copy items over yourself. I’ll have more when I figure this out; SmartEiffel is perfectly usable after configuring your path and building from source as described here. Java compilation (that is, compiling Eiffel code to Java JVM code) still appears to have problems, though.

Getting the PalmPilot to work in Ubuntu Jaunty

I was surprised when I found that the Gnome Pilot Applet didn’t work – it didn’t appear at all. In the past I just brushed it off: but then, I decided it was time to get it fixed.

Strangely enough, there is a bug report about this and it is fixed in Karmic Koala (the upcoming version of Ubuntu) but not in Jaunty. This could be fixed in Jaunty but it isn’t. Can’t say why – makes no sense to me. The fix is to use an updated version of gnome-pilot which includes a patch to fix the bug – but this updated package is only available for Karmic.

However, loading the updated version of the gnome-pilot package (using the i386 version) was simple and there were no problems. I then restarted the gnome-pilot daemons for good measure:

sudo pkill gpilot

Probably overkill – but it doesn’t hurt. Then add the Pilot Applet to the panel and you should see the icon – and your gpilotd daemon will start in the background.

Next, click on the applet itself – and wait. The gnome-pilot Settings window should appear shortly. Make sure that the ID is not zero. This causes a bug (which is described in another bug report) where installs do not work. If the ID is zero, then click on Edit and change the PDA ID to another number (I used 5). Then click on Send to PDA and follow the instructions.

If you change the ID, you will have to go back into the Conduits tab (again in gnome-pilot Settings) and enable all of the conduits you want to use.

Once all of this is done, you should find that your PalmPilot is working up to par. Too bad that a distribution such as Ubuntu or Mint (both of which are billed as Linux for the normal person’s desktop) don’t properly support a PalmPilot “out of the box”.

Linux Mint 7 Released!

Linux Mint 7 was released yesterday; it is available on CDROM. I’ve installed it onto an hp nc4010 laptop with no problems whatsoever.

So far, Linux Mint is absolutely beautiful. This is a nice contrast to Ubuntu, on which Linux Mint is based – the color scheme of Ubuntu (which seems to be firmly and stubbornly entrenched) is a dark, oppressive, and dirty brown; whereas Linux Mint uses a vibrant and uplifting green. It is a small thing, but a very common (American?) complaint against Ubuntu – and colors do affect mood.

Linux Mint also focused strongly on ease of use – including making sure that everything works out of the box. Listen to anything – view anything – it all works, and straight out of the box.

Ubuntu tries to make it easy to upgrade to view and listen to what you like: Linux Mint makes it unnecessary to upgrade or install anything.

Like Debian and Ubuntu, on which Linux Mint is based, the number of available applications is insane – no other distribution has as many packages available. In particular, Debian has the best support for Lisp I’ve ever seen.

Powered by ScribeFire.