Linux Setup Notes

name and address
created jul 24, 2008; updated aug 12, 2008

OpenSUSE 11.0 - First Impressions

F irst impressions of any OS are not necessarily the most positive. So it has been with the latest version of the respected German distribution of Linux, SUSE, which is now owned by Novell. Although there are some improvements, OpenSUSE 11.0 still has some rough spots, mostly left over from earlier versions. It retains the clumsy and time-consuming point-and-click package selection mechanism of its predecessors. The two supported windowing environments, KDE and Gnome, continue their migration toward being more complete imitators of Microsoft Windows. And there are now serious problems caused by the transition from 32 to 64 bits. It is recommended to skip this version and wait until OpenSUSE 11.1 or 12.

Installation

I tested the retail version of OpenSUSE, which comes with a bootable DVD and a small booklet that's intended to introduce inexperienced users to Unix. The retail version is identical to the free downloadable five-CD version except for the addition of several commercial and closed-source software packages. The DVD launches a menu that lets you select whether to install, repair an existing installation, or boot from the hard disk. On my computer, a HP xw4600, the installation started out well, but hung 90% of the way through, at the point where it said "Initializing Package Manager". Suse anticipates these sorts of problems, and provides a "Safe mode" and a "No APCI mode", which are kernels with reduced functionality, to compensate for peculiarities in different systems. Neither of these worked. However, by trial and error I found that yanking the computer's power cable and re-starting with a complete hardware reset solved the problem.

Most of the installation time is occupied by package selection. The Suse package installer now does autochecking, which saves you from the ordeal of weeding out incompatible packages at the end of the selection Package selection in SUSE has always been clumsy and time-consuming. process; but autochecking also slows down the process of selecting packages considerably. This can be a big deal when there are literally a couple thousand packages that you need to check through. With Suse, you can't accept the default installation; if you did, you'd miss critical Unix utilities such as latex2html, telnet, findutils, ghex, realplayer, Perl modules, Mozilla-Firefox, and lilo. But this also means that each installation takes a minimum of two hours. For a Linux novitiate, figure at least four.

In my opinion, Suse should allow users to create a package selection file on a separate computer, then load it by floppy during installation. If you have to upgrade five servers at once, that would guarantee they will all have the same software configuration. It would also make the upgrade process much easier.

The OpenSUSE distro also missed a couple of minor details that would help people who install a non-standard configuration. For example, lilo isn't installed by default even if you select lilo over grub as your boot loader. Other packages, such as skencil and acrobat reader, were installed but did not run.

Probably the most annoying feature that I found during installation was the default "Automatic configuration" mode which, contrary to expectation, does not actually configure anything. You have to remember to un-check the Automatic Configuration checkbox at the beginning of the install procedure before it will ask you for your IP address, configure your network card, and help you set your video mode. If, like me, you fail to realize the necessity of un-checking this option until after you've selected packages, you're screwed: if you try to go back, all your selections are lost. The first time through, I ended up with a 1970s-style TWM window manager with no network, no printers, no nothing.

On the positive side, the installation program did not crash, and there was only one problem: the openswan file was corrupt and caused the installation to hang. Most of the apps have fewer bugs than before. It seems that the OpenSUSE team finally paid attention to problems with earlier versions of Suse, in which the installation program happily allowed users to create unbootable systems. Now there are warning messages that pop up and force you to change your selection if you do something dumb. The root password is also automatically set to match the password of the user who does the installation to avoid password confusion, a common cause of Lost Password Multiple Expletive Spewing Syndrome.

OpenSUSE Quirks

There were a few oddities as well. For example, cups can no longer handle printing of plain text files. Personally, I think the cups philosophy of requiring a special driver for each printer is ill-conceived, so I stick with lprng. Another oddity is Firefox's new trick of popping up a dreadful huge autocomplete menu when you type a URL. Before you can use Firefox, that has to be fixed by typing about:config and disabling browser.urlbar.richResults. But this isn't a big problem; the new Firefox is almost unusable anyway. It's slower, it's kinda funny-looking [1], it crashes more frequently than earlier versions, and it still cannot display the Amazon.com book preview pages [4]. So most people will probably stick with the old one.

As far as Suse's visual appearance is concerned, long-time users have probably gotten used to it. The icon-filled Windows-like environments of KDE and Gnome are, in my opinion, steps in the wrong direction for Linux. If you're imitating someone else's operating system, you will always be a follower. But that's easily fixed. I happen to prefer fvwm95 myself, for its icon-free simplicity, its speed, and its almost overwhelming bluish-greenness [2].

64-bit Library Problems

In Linux, unlike Windows, most software packages have to be compiled specifically for the computer you run them on. That's why we have these huge distributions that contain large selections of precompiled software. If you just copied your old programs to a new computer, most of them probably wouldn't run. That's a major weakness in Linux.

I mention that because it brings us to the biggest problem. If you're upgrading from a 32-bit computer, you will find that most of your existing software will simply not work. Since the x86 world has migrated to 64 bits, not only do you have to rebuild your old applications, you have to debug many of them to make them 64-bit clean and to get them to compile with the new, more finicky compiler.

For whatever reason, OpenSUSE seems to have installed the 32-bit libraries incorrectly on my system. As a result, some programs didn't compile, giving 32/64 bit library errors like the following: Skipping incompatible /usr/lib/libm.a when searching for -lm. The problem was caused by the 32-bit libraries being located in /usr/lib and 64 bit libraries being located in /usr/lib64. This causes the incorrect libraries to be used, resulting in a 32-bit/64-bit mismatch. Unfortunately, unless you have the source code for every utility on your system, solving this problem isn't easy. Of course, if you never compile programs, you might never notice this.

I tried making the 64-bit libraries the default:

# cd /usr
mv lib lib32
ln -s  lib64 lib

Then I edited /etc/ld.so.conf, to make sure /usr/lib, /usr/lib32, and /usr/lib64 were all present, and typed ldconfig. This change allowed the program that was having trouble to be compiled, but it also broke many existing programs, including perl, nedit and man. Man, for example, now failed with the message execve: No such file or directory.

After discovering this problem with the libraries, I then had to go back and re-compile several programs and several libraries to create the correct fully 64-bit version. Eventually I gave up and changed the libraries back to their original state.

Other programs did not like the new "x86_64" keyword that Linux reports as the machine type. In some cases this could be solved by editing the program's configure.in file and typing autoconf. The source code of a few programs had to be edited to get them to compile.

Experienced Linux users know these problems happen often in Linux, and they know you should never install a new version of Linux on your main production server without first testing it on another computer. For example, a few years ago the format of executable files was changed from a.out to elf. Then as now, the effect was to The inability to guarantee compatibility with existing software is Linux's Achilles heel. make every single program inoperable. The inability to guarantee compatibility with existing software is Linux's Achilles heel. Perhaps I shouldn't complain; after all, unlike Windows, Linux is maintained by the generosity of dedicated volunteers. It's a monument to the eternal bond between man and machine, or maybe the bond between geek and computer.

Another problem: when you run a 64-bit Linux X-Window app on a 64-bit machine, and the display is on a computer running 32-bit Linux, many X Window apps crash or display garbage instead of the correct text.

To avoid being burned by things like this, it helps to remember that Linux is still somewhat experimental. So you always install it on something expendable, to make sure everything is running smoothly, before putting it on a production server. Windows, in contrast, is as good right out of the box as it's ever going to get. It's so inflexible, there's no way to fix problems. Sometimes, operating systems or distros seem to go downhill temporarily as the programmers work on the infrastructure. Just as I keep Windows 2000 on my Windows computer, until I find a solution to the library problem, the Acrobat reader problem, and the inability to compile software, I'll have to stick to SuSE 10.0 on Linux for the foreseeable future.

Other Problems

  1. During installation, if you click on "Install Package", then cancel, and then click it again, it says "There are some conflicts on the transaction that must be solved manually." Unfortunately, it doesn't say what those problems are; the window is blank. (This problem is not yet fixed)
  2. Setting the keyboard repeat speed in the X Window system is now messed up. Previously, you could add a line like: Option "AutoRepeat" "27 250" to your /etc/X11/xorg.conf file. This no longer works properly. An equivalent solution is to put xset r rate 200 200 in .xinitrc instead. Unfortunately, this doesn't work properly anymore either, because values over 255 cause an error. You have to choose between sluggish and ridiculously fast.
  3. Nedit (and many other programs) no longer compile. Solution: see below.
  4. The default terminal in Gnome is ugly, with characters overlapping each other and strange spacing between letters. The solution is use rxvt-unicode instead. However, this causes problems when connecting to older systems, which don't recognize the new terminal type. If you receive an error message like 'rxvt-unicode': unknown terminal type. you have to update the remote terminfo by typing tic rxvt-unicode.terminfo.
  5. After installation, if you select new packages, instead of reading from the DVD, without any warning it tries to download everything off the Internet. Besides wasting hours of your time, this Web based approach causes numerous errors, with packages being skipped because it is unable to access some (unidentified) server [3]. This basically means that you can't add new software from the DVD in the event of a problem. On my broadband connection, the downloads dragged at 8.40 kB/s. Woe to any user who is stuck behind a dialup line. (This is not yet fixed.)
  6. Acroread crashes with the message: terminate called after throwing an instance of 'ASErrException', Aborted. This uninterpretable message gives no clue what is wrong with it. The same problem occurred when I downloaded a new version from Adobe's Website. Solution: Install all the 32-bit packages, especially any 32-bit libraries, from the DVD. These should be listed as dependencies, but aren't.
  7. Unable to run old Python-based programs like skencil. After a certain amount of effort, I was able to compile both skencil and sketch from their source code; but both programs segfaulted for an unknown reason. Partial solution: Three promising conversion utilities, pstoedit, skconvert, and uniconvertor, both did nothing but crash when converting .sk files. However, I found one old computer that still ran skencil. Skencil was able to save its sk files into svg format, which is readable by Inkscape. Although Inkscape is also Python-based, it does run on x86_64 systems ... at the moment.
    Update: A new version of skencil available from skencil's main website compiles and runs successfully in Suse 11.
  8. Enlightenment window manager goes into a weird screen mode in which one single window is enlarged, fuzzy, and surrounded by a big black border. Solution: This is apparently a feature that someone spent time deliberately adding to Enlightenment. It's called "Fullscreen mode" and is triggered whenever you accidentally press Left Alt + Enter. In e16 it can be disabled by editing /usr/local/share/e16/config/bindings.cfg or /usr/share/e16/config/bindings.cfg and commenting out the line KeyDown A Return wop * zoom. There is another fullscreen mode (Alt-F11) which merely resizes the window, without changing the hardware screen mode.
  9. If a window becomes too large in Enlightenment, it is impossible to grab the lower right corner to shrink it. This is a particular problem for apps like Firefox which remember their previous size. Solution: Use Alt + left click to grab and move the window.

Firefox Problems

  1. Firefox pops up a huge autocomplete menu (called "Rich Results") when you type a URL. Solution: type about:config and disable browser.urlbar.richResults.
  2. Firefox 3 hangs randomly. (This problem is not yet fixed.) Solution: Use Firefox 2.
  3. Firefox adds "www" and ".com" to anything it considers a "broken" URL, sending you to unwanted websites. Solution: Firefox calls this "fixup". Solution: In about:config, set browser.fixup.alternate.enabled to False. Then set keyword.enabled to false.
  4. Firefox problems: At present, Firefox 2 is the only version that works in Linux without frequent hanging and intrusive auto-complete features. However, be careful to disable Firefox 3 entirely or you could face unpleasant surprises. While I was viewing a PDF in acroread, a message popped up asking for permission to download a plug-in. This turned out to be a plug-in for Firefox 3. When the plug-in was downloaded, it opened Firefox 3, which decided that all my existing add-ons were invalid and disabled them (without asking permission). Upon re-starting Firefox 2, it was impossible to re-activate or update the add-ons, leaving all the plug-ins permanently inactive. Solution: I could find no way of repairing this other than by restoring the entire .mozilla directory from a backup.

Updates

[1]. This was apparently a Gtk issue. The default gray Firefox menu colors and button styles can be restored by deleting the directory /usr/share/themes/Gilouche.

[2]. This can be easily changed with a few tweaks to the source code or by applying a wallpaper image.

[3] Iptraf showed that it was connecting to some Web server at the University of Colorado at Denver.

[4] Update (Aug 24, 2008): Amazon seems to have changed something on their Website. Firefox 2 is now able to read the "Search Inside" pages.

Compiling Nedit in x86_64 Linux

To compile nedit in SUSE 11 Linux on a 64-bit x86 system, copy the following lines into a file called Makefile.crud in the makefiles directory, then type make crud.

#-----------------------------------------------------------------------------
# Makefile for nedit in x86_64 linux
#-----------------------------------------------------------------------------

OBJS = *.o 
LDFLAGS=
INCLUDES=-I. -I/usr/local/include -I/usr/include -I/usr/include/X11  -I/usr/include  -I/usr/local/include
LIBS=-L/usr/lib64 /usr/lib64/libXm.so -L/usr/lib -L/usr/X11R6/lib -lm -lXext -lXm -lXpm -lXext -lXt -lX11 -lz -lfl -lstdc++ 
CC=cc
CFLAGS=-Wall -Wunused -W -DBUILD_UNTESTED_NEDIT
YACC=yacc -d
include Makefile.common
verify_config: check_tif_rule
ARFLAGS=-urs

This makefile might also work in 32-bit SUSE Linux if all references to lib64 are changed to lib. Don't forget to install OpenMotif first.

Edit the file util/DialogF.c and change line 395 from

	dialog = XmCreateMessageBox (dialog_shell, "msg box", args, argcount);

to

	dialog = XmCreateMessageBox (dialog_shell, "msg box", args, 2);

This will stop it from crashing in a text search.

Bugfixes to xmgr

In x86_64 linux, xmgr crashes if you select the Legends dialog. Edit the file motifutils.c and change line 125 from

  while ((s = va_arg(var, char *)) != NULL ) { 

to

  while ((s = va_arg(var, char *)) != NULL && i<nchoices) { 

Back