What Happens When Ubuntu Users Compile Source, and Why Ubuntu Books Are Tediously Pedantic

I recalled Jem Matzan’s rant against the proliferation of overly pedantic Ubuntu books when I read the following article this morning. Jem wondered, “What is it about Ubuntu Linux that makes otherwise competent technical writers switch to Moron Mode?”

Maybe they understand their target audience, Jem. Case in point:

A first look at Python 3.0 alpha 1

I compiled and installed Python 3.0 alpha 1 on Ubuntu Linux 7.04. The process was relatively painless, but there was one minor unexpected problem that I encountered. When I installed the Python 3.0 alpha, it placed the Python 3.0 executable at /usr/local/bin/python, which essentially made Python 3.0 the default on my system. Since Python 3.0 isn’t backwards compatible, making it the default in that manner can break other Python applications. I had to move the executable so that the python command would go back to using Python 2.5, which is located at /usr/bin/python.

Never mind the giddiness sweeping the globe now that python 3000 is available for testing. I’ll save my energy and complaints about the lack of backward compatibility once it’s a stable release in a year so.

Instead, let’s look at how this Ubuntu user either didn’t read the documentation or just doesn’t understand what happens when source is compiled on a local host.

The default path for binaries that either come with a distro like Ubuntu or are added via a repository is /usr. The author obviously has been using a version that either came with Ubuntu (I don’t know if it’s included in their base install or not because I don’t use it) or that he added via whichever package management system he uses.

The default path for source compiled on a local host is /usr/local. That means the binary goes to /usr/local/bin, libraries go to /usr/local/lib, and so on. That can be changed by using a prefix command to another path when running ./configure. So, too, can other directory values like the bindir.

Thus, what the author calls “unexpected” was perfectly normal, perfectly expected behavior for a default ./configure that doesn’t change the installation prefix or the bindir. There are two reasons why the author should’ve had a better plan when he ran configure:

  1. He was installing a second version of the same software. Had he installed the other version of python from scratch first, he could’ve overwritten various files (IIRC, python installs python2.5 and a symlink to it — I’m on XP this morning so I’ll double check that later) and made things even more difficult to “repair.”
  2. When fiddling with bleeding edge pre-release software that has conflicts with other things on your system, it’s a good idea to install to and run from a temporary directory outside $PATH.

I don’t think all Ubuntu users are daft. I don’t even want to say the author of the python article is. Obviously there are smart Ubuntu users. But Ubuntu doesn’t have the kind of “geek cred” other distros do. Ubuntu, in fact, gets a zero for “geek cred.”

And to be fair, some users regardless of which distro they run never take time to understand their systems, read the documentation, or even think things through. They just go all trigger happy and then grumble when things don’t work correctly. Or worse, they see a minor mistake as grounds for reinstalling instead of an opportunity for learning, understanding, and fixing. Failure to learn means they repeat their mistakes.

Perhaps Ubuntu and PCLOS get more than their fair share of careless and trigger-happy users because they target Windows refugees who are used to point-double click-run. For the most part, they’re people who’ve never had to write a .bat file or boot into a console. Much less compile source.

Those pedantic Ubuntu books target that kind of crowd the same way Ubuntu does.


Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: