State of Linux Address

Five years ago, the Linux operating system was really a pain to use.  It looked and felt "ugly" and inconsistent, but more importantly, it was often very difficult and time-consuming to install new software.  While you might be willing to put up with an ugly interface, you’re probably less/not willing to use a system that requires you to spend an entire weekend whenever you want to install anything.

The heart of the problem is dependencies.  Almost every program you install will depend on other programs/libraries being installed first, because your new program needs to use those libraries.  So you try to install your new program, and the first thing it does is check whether your system has the dependencies it needs.  If not, it says "couldn’t find xyz" and the installation stops; you then need to find and download and install xyz.  Any given program might have 3 or 4 or 10 or 20 dependencies, and each of those has its own dependencies which your system may or may not already have.

To make matters worse, a dependency is usually for a certain version of a program.  You might have version 1.2 of package foobar installed, but your new package requires foobar version 1.4.  So you install the new version of foobar.  But then it turns out that some other program you’ve got, which also depends on foobar, doesn’t work properly with version 1.4.  Now you need to upgrade that other package to (hopefully) make it work again, and possibly upgrade some of its dependencies too.

This turns into a frustrating nightmare very quickly, and it was not the exception, it was the rule.  And the chances of hitting some error while installing your program are much greater when you’re installing 5 or 10 different packages.  Plus, installing any given package requires at least 5 steps (download, uncompress/unzip, then running the commands configure, make, and make install), so installing more than a couple packages is a pain even if you don’t run into any errors.

RedHat Linux attempted to make things easier with their RPM package management system.  This allowed you to use a single command (rpm packagename.rpm) to replace the last 4 steps of an installation, once you’d downloaded the RPM file.  But there aren’t always RPMs available for the package you want to install, and in any case it doesn’t address the issue of dependencies at all.

Debian Linux attempted to address all 5 steps with their APT package management system.  With a single command (something like apt-get install packagename) the system would locate, download, unpack, compile, and install the program.  Even more importantly, it would also determine which dependencies your program has, and it would download and install them first.  If you’ve spent any amount of time administering a Linux system, you understand that this idea is nothing short of miraculous.

I spent a month last year using Debian, but found the APT system to be less than ideal.  (In fairness, I should say that given more time I might have been able to better understand and properly use the system, possibly eliminating my reservations about it.)  It’s not exactly as simple as apt-get install whatever.  The system actually has 3 different versions at any given time: stable, testing, and unstable.  The packages in "stable" are outdated, sometimes by a year.  Testing packages are newer, but usually at least a month or two old.  Unstable packages can be up-to-date but also very likely have bugs that prevent them from installing or running.

All that is confusing and annoying, but if you could mix packages from the different versions, it’d be ok.  But you can’t do that cleanly, i.e. if you try you’re likely to break your whole system.  If you want to upgrade from stable to testing or unstable, you have to do it all at once, which could take hours or days.  And eventually unstable becomes testing, and testing becomes stable, so you will have to go through this on a regular (albeit infrequent) basis.  Basically, a Debian system is either stable, testing, or unstable, and it can only use packages if they’re available within the proper version.  And as I said, stable is usually very outdated.

Aside from those conceptual problems, I frequently ran into practical problems just trying to use the APT system at all.  In the process of installing packages, there would be compilation errors, or configuration problems, or other problems typical of the manual configure-make-makeinstall process.  The concept is great, but if it doesn’t work, it’s no better than the manual method.

Enter Gentoo.  Gentoo Linux is based on the same idea as Debian -- a package management system that resolves dependencies intelligently.  In Gentoo, this system is called Portage, and you use the emerge command to access it.  With the command emerge packagename the system locates, downloads, unpacks, compiles, and installs your package, and it also installs any required dependencies.  The difference (in my experience) is that Gentoo does this a lot better than Debian does.  In Gentoo, there aren’t separate package trees for "stable" or "unstable" (etc) versions; there’s just one package repository.  When new packages (or new versions of packages) are introduced, they are "masked" meaning they’re undergoing testing.  It’s a similar idea to Debian, but it’s implemented much more simply.  To install a masked package, you don’t have to convert your whole system to a "testing" distribution; instead, you just set a special variable when running the emerge command: ACCEPT_KEYWORDS="~x86" emerge packagename will install your masked package.

I said that I often ran into errors using Debian’s APT system.  In contrast, Portage has "just worked" for me consistently.  I’ve probably installed 200 packages including dependencies, and have only had problems with 4 of them.  And they weren’t difficult, frustrating problems that took forever to solve -- manually installing the packages solved the problems, so that probably means whoever created the Portage version of the package just messed something up.

With the advent of such intelligent package management systems as Gentoo’s, I think the last significant problem with Linux on the desktop has been solved.  The two other main problems were that the graphical interfaces available for Linux were ugly and hard to use, and that there weren’t as many/as good programs available for Linux compared to Windows.

The GUI problem has been largly solved in the past year or two; a modern Gnome or KDE Linux desktop is just as nice-looking and easy to use as a Windows desktop (and can be configured to look exactly like Windows, if you’re really addicted).  The lack-of-programs problem is solved depending on what you need, with a few exceptions.  For web browsing, email, instant messaging, office apps (word processing, spreadsheets, etc), watching movies, listening to music, image editing, and every other mainstream usage, there are (usually multiple) Linux programs that are as good as or better than their Windows counterparts.  I do all that on my system, plus watch tv with my tv-tuner card, and record music with a free multitrack harddisk recorder program (ardour).  There’s literally nothing I want to do that I can’t do in Linux, and that’s saying something since I’m a geek and use my computer for everything.  The few apps that I hear people really complain about being missing are the Intuit apps (Quicken, TurboTax), and those you can run in Linux with Crossover Office (which I think costs $50).

Back to the topic at hand, systems like Portage solve the final important problem with Linux -- the fact that installing programs used to be a nightmare.  It’s even arguable that this is now easier on Linux than on Windows, since with a single command, your programs are downloaded and installed for you.  The initial installation of the operating system is still somewhat difficult, but the average user never does an OS install anyway; the OS comes pre-installed, or they have a friend/shop do it, because the average user would have trouble even with a Windows OS install.

Switching from defense to offense, what are the strengths of Linux?

♠ price.  The OS and all applications are free.  (Well, there are programs that you can pay for, but I’ve never needed a program that wasn’t free.)

♠ security.  Since programs need special priveledges to modify/delete system files, viruses and social engineering rarely cause damage on Linux systems.  Since most programs are open-source and are actively developed by multiple people, security bugs are fixed very quickly.

♠ community.  Again, most programs are open-source and actively developed, and have mailing lists that you can read and ask questions on.  If you need help or want to request a feature, mailing lists are your best friend.

♠ remote access.  With simple secure tools (ssh and scp) that are standard on virtually every Linux distribution, you can log in to your system from anywhere, run commands, transfer files, do anything you’d normally do if you were sitting in front of it.  With vnc and x11vnc, you can even use your GUI (mouse, etc) remotely, similar to the Remote Desktop feature in Windows XP (except that it’s been around for about 10 years on Linux).

♠ backup and system transfer/copy.  With a single simple command (rsync -a --delete / /mnt/backup) you can make an exact copy of your system to another disk (or partition or directory).  Do it regularly and keep it as a backup, or do it to move your system to a bigger disk, or just to clone a system.

There are lots of others, but those are some of the standouts.

In conclusion... I don’t actually have a conclusion, but this post got to be really big, so I feel like a conclusion is in order.  I conclude that if you know a geek who can help you get past the initial installation, you should run Linux instead of Windows.  The end.

Posted by Anthony on 19 replies


01. May 12, 2004 at 11:08am by Patrick Copland:

I especially liked when Luke flew beyond the Debian system to the planet of Gentoo, to finish his training with Master Yoda.

No, seriously, I was wondering about Gentoo.  I get terrific results with Knoppix, which is based on Debian.  If Gentoo has advantages, I will be trying that.  I am really looking for a distribution that provides good, "pay as you go" support to get me over an major issues while I am learning.

02. May 12, 2004 at 05:47pm by Anthony:

Also, I forgot to say that I have some notes here that I wrote for a couple friends, which go through the process of installing Gentoo.

Patrick... what do you mean by "pay as you go" support?

03. May 12, 2004 at 10:56pm by s9:

I agree with you. Gentoo is in my the most powerful distro. Not only because of the inner workings of it, but because of the communty also. Gentoo users really support and help other people.

04. May 13, 2004 at 05:21am by steev:

In your notes anthony, the lilo part - don’t forget to add, any time you make changes to lilo.conf that you need to run lilo again.  personally, i dig grub, so thats what I use, but i remember back in my debian/lilo days, that i had to run lilo after making changes to the config file.  on my 2.66ghz laptop, it takes about 1 hour to compile X, openoffice-ximian (cause its prettier) takes 7 hours, kinda puts it in perspective - also, really liking the new Xorg.  now, the cool thing is, recently, I discovered - which has some dri/drm/opengl stuff for ati chipsets.  my laptop has an ati card (knew i shoulda held out for a laptop that had nvidia) and i could only ever get 2d.  now i have 3d, but its extremely buggy, obviously, as its all cvs code, and some stuff may or may not work.

also, there is a file, to be edited as root, rc.conf - if you scroll down to the bottom of it, it should have something that says, #XSESSION="Gnome" - if you remove the # (which means its a comment) then it should start Gnome whenever you startx - you can replace Gnome with whatever you choose though - KDE, enlightenment, e17, openbox, fluxbox, blackbox - what I do though, is create seperate lines and then based on how I am feeling, I just uncomment whatever wm (window manager) i feel like using.

there is also a great new package called esearch - its similar to emerge -s but seems alot faster ( it creates its own database ) what i don’t like about it however, is that you have to update it manually - or, after each time you update a package, otherwise it will claim you do, or don’t have something emerged (installed).

05. May 13, 2004 at 11:20am by Patrick Copland:

Regarding support, you can buy the distros with support or add support.  For example, Red Hat Enterprise Linux Workstation with standard support (fits what I need) is $300 per year.  I cannot figure out what Suse support options cost.  I would only pay a large up front cost once I know the support was up-to-par.

Pay as you go support would mean, if I have a problem, I would pay a set cost per hour or per incident for resolution.  The technician on the phone would tell me if my problem fits the support plan or not (vague problems, cluster configurations from scratch, etc. would probably not be handled via phone support).

06. May 13, 2004 at 11:40am by Anthony:

Well, those notes were written so that people who have some Linux experience would be able to install Gentoo without hitting some of the problems that I did.  I wouldn’t expect a Windows user to be able to install Gentoo if they’d never used Linux before, and I wanted to keep those notes as terse and Gentoo-specific as possible.  So I left out things like the fact that if you want to edit your boot configuration, then of course you need to run lilo to save the changes to the boot sector :)

Regarding your 3D, did you try using the DRM/DRI from the kernel?  I’m running 2.6, and my Radeon AIW card (which is a 7200) works fine with the kernel’s 3D support.  I only get about 900FPS with glxgears, but that’s because my card isn’t that great.  glxinfo does report that I have direct rendering, and without it, I only get about 70FPS.

I had seen that section in rc.conf, and wondered why it was there.  Why not just use the .xinitrc file?

About that support, I didn’t know that any Linux vendors offered pay-as-you-go support.  (Of course, I’ve never actually bought a copy of Linux... :)

07. May 13, 2004 at 12:21pm by steev:

well, because i have a laptop chipset, and the support isn’t in the kernel for it yet - or it isn’t in libGL - one or the other, not sure which, its called the Radeon IGP - and actually, i think that the kernel module does support it, i just don’t think that X did, still doesn’t really, it’s quite a bit buggy, but thats ok by me, not a huge deal, and, without direct rendering, i get 200fps in glxgears, and with direct rendering, i get 400, so, its an increase, but not much.  i can play bzflag, but tux racer refuses to run because of the fullscreen.  i just hope that IGP support matures soon.

08. May 13, 2004 at 01:14pm by Patrick Copland:

There must be a lot of hungry, professional consultants out there what are itching to make some modest bank as well as furthering the cause.  I am looking for that entity to buy/try support from.

Me?  I am no good to anyone until I have knowledge, experience and resources.  Find out what is mature, working well and supportable.  Then implement.  I want nothing more than to implement solutions that anyone could be proud of!

09. May 13, 2004 at 03:00pm by steev:

Give me bleeding edge or give me death!

10. May 17, 2004 at 04:59pm by From East Asia:

I conclude that if you know a
geek who can help you get past
the initial installation,
you should run Linux instead
of Windows.
WinXP+IE is strongly recommended
not Linux; it is so called
a STANDARD combination, and
almost everyone uses it.

11. May 18, 2004 at 01:18am by Patrick Copland:

Hey, East Asia:  have you heard about Knoppix?  It could change your mind about strongly recommending WinXP+IE.

With a modest amount of ambition, G2 and resources, incredible results are acheiveable with Open Source software.  Mediocrity can be achieved with Microsoft products.

12. May 18, 2004 at 01:48am by Anthony:

> WinXP+IE is strongly recommended
> not Linux; it is so called
> a STANDARD combination, and
> almost everyone uses it.

I don’t suppose I need to point out the fact that it’s a de facto standard, not an actual standard, and that being a "standard" has no correlation whatever to the quality of the software.  Nor the point that although almost everyone uses it, almost no one actively chose to use it; they use it because it was the only option available on the computer that they purchased.

13. May 19, 2004 at 06:15am by From East Asia:

OK, guys. But I love Microsoft
products, and always use it.
It depends on the philosophy,
not on the fact.

14. May 19, 2004 at 11:57am by Patrick Copland:

How can we get you to love the penguin?  Linux has tremendous potential.  Just look at what Anthony has done it (this web site, his car tunes player).  My philosophy is, if it doesn’t have large potential it isn’t worth my time.

15. May 19, 2004 at 02:47pm by From East Asia:

[oops].. The philosophy is as follows.
Truth is not always true, but the mob is generally true.
That is why I do not use Linux, and recommend Windows XP.

16. May 19, 2004 at 03:56pm by Anthony:

Cutting through the quasi-psychological hogwash, the bottom line is, truth does not influence his choice of OS.  The mob does.  Which is fine with me; I don’t actually care which OS a person uses.  I heartily recommend Linux, but it’s no skin off my back if someone wants to use something else.

17. May 20, 2004 at 02:35pm by Anthony:

On the other hand, I am curious why you’re posting from Unix and Linux machines running FireFox and Mozilla, if you "love Microsoft products and always use it" as you say...

18. May 20, 2004 at 11:02pm by Patrick Copland:

How can you tell how East Asia is posting?  By looking at your logs?

19. May 21, 2004 at 01:31am by Anthony:

Mainly my long-range X-ray vision, but I do have the logs to fall back on when it’s cloudy.

Reply to this message here:

Your name
Website (optional)

HomeCreate PostArchivesLoginCMS by Encodable ]