Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Two Years Before the Prompt: A Linux Odyssey

michael posted more than 10 years ago | from the picky-about-who-its-friends-are dept.

Editorial 499

tim1980 writes "Derek Croxton has written a rather long editorial on how he sees the Linux and Open Source communities, and his personal experiences with Linux, the editorial is titled Two Years Before the Prompt: A Linux Odyssey and is over 3,500 words. Excerpt: 'A novice's greatest fear is sitting in front of a motionless command prompt with no idea what to type; or, as so frequently happens, knowing a command that he copied verbatim from a document discovered on the internet somewhere, but with no idea of what it means or how to alter it if it doesn't behave exactly as advertised.'"

Sorry! There are no comments related to the filter you selected.

FP (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#10211857)

FP

.so hell (3, Informative)

BoldAC (735721) | more than 10 years ago | (#10211860)

I agree with this completely! Anybody have a solution? I know it is out there... somewhere... ...In Windows, this issue is known as ".dll hell." In Linux, you might call it ".so hell" ("so" being the extension for these "shared objects"). It has probably caused me more frustration and hair-pulling than all the other issues in Linux combined. In principle, the issue seems simple: you can't install a program if the shared objects that it depends on - its "dependencies" - are not on the system. Any attempt to install the program will generally inform you what dependencies are missing, and it usually isn't too much trouble to go find the needed files on line somewhere. The problem comes if you need, say, version 4 for your new program, but you already have version 3 installed. You can't simply overwrite version 3, because then all the existing programs that depend on it will break. Apparently you can't just have separate copies of 3 and 4, since I have yet to find an installation tool that will let you do this. Instead, you...well, frankly, I don't know what you do. I have yet to solve this problem, and it continues to bother me.

Re:.so hell (-1, Troll)

jovetoo (629494) | more than 10 years ago | (#10211897)

Gentoo [gentoo.org]

Re:.so hell (4, Informative)

Xner (96363) | more than 10 years ago | (#10211898)

I simply use "apt" or "yum" and let them sort it out. The only times they failed me was with a Fedora test release, but I knew the risk I was taking.

Re:.so hell (1)

BoldAC (735721) | more than 10 years ago | (#10211936)

I agree that this is what I typically do; however, it's obviously not with the linux-spirit of doing things.

As drive space becomes cheaper and cheaper, it seems that you should just be able to keep copies of the needed components with the installed program.

AC

Re:.so hell (0)

Anonymous Coward | more than 10 years ago | (#10212100)

And of course you also have the BSD ports system
and/or pkg_add -r *myprogram*

I think gentoo uses some sort of it

type, sit, wait and enjoy!

Re:.so hell (3, Informative)

LnxAddct (679316) | more than 10 years ago | (#10212146)

Who moderated the parent as a troll? Yum or Apt is what everyone I know uses. They just take care of the ".so hell" that once plagued us all. Does anyone seriously not use a package manager now a days? I do install from tar balls and source a bit, but the typicall user doesn't need to, and even when I do, I haven't experienced ".so hell" in years. I actually forgot about it until this artical. Somehow it magically disappeared for me. Anyone else care to comment?
Regards,
Steve

Re:.so hell (3, Insightful)

bs_testability (784693) | more than 10 years ago | (#10211923)

If version 4 breaks version 3's apps, why would they give it the same filename? that doesn't sound like the nice thing to do.

Re:.so hell (2, Informative)

Xner (96363) | more than 10 years ago | (#10211948)

That's why it's usually not the way it's done. If you remember the switch between libc5 and glibc (libc6?), the two libraries co-existed on the same system with different filenames for quite a while.

Of course, not every single person maintaining a library is as careful as the glibc people, and screwups do happen. It is the distributor's task to maek sure all the programs that ship with a given distribution work with the libraries included in it.

Re:.so hell (1)

Ummagumma (137757) | more than 10 years ago | (#10211926)

This is the major reason my second machine isn't running Linux. I have having to chase down dependency after dependency only to find out one of the dependencies have a dependancy. Drives me insane!

Re:.so hell (1)

16384 (21672) | more than 10 years ago | (#10211958)

what are you talking about? I just do
apt-get install aplication_name

And things start to work at once... Maybe it's just because I'm using Debian :)
If not, and if it is open source just compile it yourself. (I had a .dll hell in Windows once, and it wasn't pretty...)

Re:.so hell NOT NO MORE FOR ME! (5, Informative)

Anonymous Coward | more than 10 years ago | (#10211937)

that's why god created apt-get.

It's been years since I had to worry about dependancies.

2 reasons:

Apt-get from debian has been ported to Fedora/Redhat. I use Fedora. (laptop)

I use Debian. (desktop)

That's it.

What to patch?

apt-get update && apt-get upgrade

Wham bam thank you mam!

Want mplayer, but Fedora doesn't have the ability to play DVD's or Mp3's?

Head on down to Dag's RPM repositories, follow his directions and go:

apt-get update
apt-get upgrade
apt-get install mplayer libdvdcss xmms

done and DONER!!!!

Apt-get IS the killer application for linux.

Update everything, patch everything. Not just core system like in Windows!

No MORE DEPENDANCY HELL.

It's realy quite nice. Install debian, upgrade to unstable. I've been running it for 2 years, no sweat and completely up to date.

Re:.so hell NOT NO MORE FOR ME! (1)

numbski (515011) | more than 10 years ago | (#10212057)

The ports tree in FreeBSD is also quite nice. If you want to build something from sources, update the ports tree from cvs (I have a stable-supfile I keep in /usr/src for this purpose), the cd /usr/ports

Everything is split into categories. cd into the directory you want, then do a make, then make install.

If make fails because of a dependancy as described above, quite often you can simply cd to that program and make install.

The trick is, of course if a version is already installed. Then you do make deinstall, then make reinstall. It's that simple.

Re:.so hell NOT NO MORE FOR ME! (0)

Anonymous Coward | more than 10 years ago | (#10212067)

Wow, great idea! Now I just need root access to every computer I ever use.

Re:.so hell NOT NO MORE FOR ME! (5, Insightful)

Cereal Box (4286) | more than 10 years ago | (#10212161)

The only problem is that you've posted a solution to the problem of maintaining packages on Debian/Fedora, not on Linux in general. Not every distribution has the ability to use apt or yum or whatever or even a package system. Or it may have a package system, but no one has made a decent number of packages for the distribution because it's not as popular as Debian or Fedora.

Now wouldn't it be nice if a standard were made and users could be assured that, for the most part, regardless of what distribution they're using:

  1. apt is available,
  2. A consistent filesystem hierarchy is followed from distribution to distribution, and
  3. A large number of packages are available (and, more importantly, compatible) due to point 2.


Of course, every time I bring up the idea of standardizing important parts of Linux distributions the lynch mob comes after me, because consistency and distribution-neutral package installation goes against the spirit of Open Source or something ("stifles choice", I've heard).

I mean, wouldn't it be nice to tell someone "just use apt-get and do X, Y, and Z" instead of "[Install Debian] and use apt-get to do X, Y, and Z"?

Re:.so hell (1)

mikael (484) | more than 10 years ago | (#10211950)

The problem comes if you need, say, version 4 for your new program, but you already have version 3 installed. You can't simply overwrite version 3, because then all the existing programs that depend on it will break.

The most common solution seems to be to download the source-code and recompile everything. Even worse is when you have version 4 installed, and the new program you want to install is based on version 3. But of course, everything else in your desktop is based on version 4.

At least Linux tells you why your application won't install, rather than giving you a blue screen of death when you've spent an entire afternoon working on a project and decide to print/save/transfer your data.

Off topic: DLL Hell (2, Informative)

Davak (526912) | more than 10 years ago | (#10212049)

If there are any windows-users actually in this thread... and they get trapped in a DLL situation. I would suggest trying these programs...

http://www.sysinternals.com/ntw2k/freeware/procexp .shtml [sysinternals.com]

It'll tell all the processes associated with a running program.

http://www.sysinternals.com/ntw2k/freeware/listdll s.shtml [sysinternals.com] will show all the loaded dlls.

Between these two programs, you can sort through most of the dll errors without killing yourself.

disclaimer: I don't know this guy... I just use his software. :)

Davak

Re:.so hell (2, Informative)

wjwlsn (94460) | more than 10 years ago | (#10211977)

I used to resolve this by having a directory that specifically contained old versions of library files. Try ldconfig... a snippet from the man page:


  • ldconfig creates the necessary links and cache (for use by the run-time linker, ld.so) to the most recent shared libraries found in the directories specified on the command line, in the file /etc/ld.so.conf, and in the trusted directories (/usr/lib and /lib). ldconfig checks the header and file names of the libraries it encounters when determining which versions should have their links updated. ldconfig ignores symbolic links when scanning for libraries...

Re:.so hell (2, Informative)

ratboy666 (104074) | more than 10 years ago | (#10211989)

first, you can run programs with local libpath. second, multiple library versions can co-exist. third (under solaris) apis are versioned.

Re:.so hell (2, Informative)

Neil (7455) | more than 10 years ago | (#10212022)

I don't recognise the description of the problem at all. Normal shared object handling in Linux and other Unixes seems to have this covered entirely. If you need versions 3 and 4 of shared library "libfoo" then you typically have something like: /usr/lib/libfoo.so (symlink to libfoo.so.4) /usr/lib/libfoo.so.3 /usr/lib/libfoo.so.4

When you run a binary which which was originally dynamically linked against version 3 or version 4 ldd loads either .so.3 or .so.4, as appropriate.

The libfoo.so symlink tells ld which version to default to using when compiling new binaries with a "-lfoo" on the link command line.

Re:.so hell (2, Insightful)

moonbender (547943) | more than 10 years ago | (#10212140)

I've spent the last ten years extensively using Windows and, lately, Linux machines, and I have never, not once, had a problem with this in either operating system. And I install and remove software all the time on both platforms. Of course, with Linux it helps to use Gentoo and Debian, which are basically the only distributions I've used. And with Windows, I don't know, the problem never came up. In both cases I'm not even really aware of the underlying dependencies, things just work.

Re:.so hell (1, Informative)

Anonymous Coward | more than 10 years ago | (#10212220)

There is a reason .so's have version numbers on them. A good system should link it directly against it's needed .so- and those can definitely co-exist.. header files, I can understand.

Re:.so hell (1, Interesting)

Anonymous Coward | more than 10 years ago | (#10212228)

Yes, and the answer is simple: Stop using DSOs! It seems that when Unix finally got the ability to use DSO's developers went crazy for them. Every single little peice of code is shoved into a DSO. The problem is that it isn't necasary; many small libraries are only a few k in size and used by one or two applications. There is no real advantage in using a DSO here; it would have been much simplier to just use a static library.

Sadly Linux developers have become so enamored by DSO's that I don't think they even know how to do anything else. Static libraries are "old tech" and we can't possibly use them in our New! Shiny! Linux! can we? So instead we get DSO's scattered all over the system, ready to change their API and ABI at a moments notice and break stuff for you. Silly.

Re:.so hell (1)

pavon (30274) | more than 10 years ago | (#10212229)

There are really two solutions to this.

First, the developers need to learn how to package their software. If you are making a package for a distro (and all rpms are specific to a single distro), you should statically link any libraries which are not included in the base install of that disto. You should avoid using development libraries and if you must use them, statically link them. You should learn how to make RPMs that don't demand a specific version of the library if your software will work with any of the minor releases of a major version. This is what it means to package your application, and you have to do it for each distro. Releasing rpms is saying that you want to make it simple for people to install you application. If you don't want to make it simple then you might as well just release tar balls of the source because a shitty package is just as hard to install.

But since no one in the devlopment community seems to care about that, then the only option that users have is to use debian. It solves the hassle by having a much nicer dependancy system and by only letting people who know how to build packages commit them.

So those are the options for a user: Use Debian and wait a little longer to get software while someone polishes it for you. Use Gentoo, and have bleeding edge software at the cost of long install times. Or use an RPM based distro and deal with DLL hell. Myself, I would rather compile everything myself from tarballs then go back to using rpm.

First Post (-1, Offtopic)

Xero_One (803051) | more than 10 years ago | (#10211862)

What do I type now?

GREAT!!! (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#10211866)

I just learned my Mom's name is Jaddah Conteh-Kanu ..

WE CAN't FLY ON PLANES!!!!

All is left is to join teh GNAA I guess!!!

-

first... and no idea what to type... (-1, Offtopic)

jovetoo (629494) | more than 10 years ago | (#10211869)

guess i'm a slashdot newbie...

From TFA (-1, Troll)

stratjakt (596332) | more than 10 years ago | (#10211894)

Linux is probably the worst in most respects, full of useless tools that do nothing to help a user accomplish anything. Its desktops are sloppy and amateurish, and what little documentation exists is laden with hyperlinks to homosexual lifestyle websites.

Screw this guy, right fellas!

Re:From TFA (2, Funny)

kidgenius (704962) | more than 10 years ago | (#10211924)

hyperlinks to homosexual lifestyle websites.

I think the author is just pissed because he got goatse'd a few times.

Re:From TFA (0, Flamebait)

makomk (752139) | more than 10 years ago | (#10212058)

| Linux is probably the worst in most respects, full of useless tools that do nothing to help a user accomplish anything. Its desktops are sloppy and amateurish, and what little documentation exists is laden with hyperlinks to homosexual lifestyle websites.

Screw this guy, right fellas!

+3, Interesting?! Scary...

Re:From TFA (4, Informative)

fafaforza (248976) | more than 10 years ago | (#10212076)

I'd agree with the documentation part. From experience, most help comes from stringing together incomprehensible usenet posts and articles found on google.

The documentation for the most part is poorly written, and poorly laid out. A lot of times I find docs diving straight into each command or option with its own set of triggers, etc, without first giving a broad overview. I do not have specific examples; just an overall feel from a few years of using Linux and FreeBSD.

Can't really lay blame on anyone, though. People developing software for open source systems would rather create it than write documentation aimed at the greenest of Linux users, or support the software on forums and newsgroups.

Re:From TFA (0)

Anonymous Coward | more than 10 years ago | (#10212217)

I'm not sure I agree with putting FreeBSD in that category. Chances are if you've downloaded FreeBSD you've also passed a page to the handbook, which details many of the tasks needed in FreeBSD. FreeBSD man pages are very helpful 90% of the time. Man pages also cover files. Don't know what rc.conf does? 'man rc.conf' don't know what 'newsyslog.conf' does, then look at the man pages.

I tend to find most Linux system documentation to be very fustrating, and often incomplete. Where Linux/BSD is hurting the most is at the GUI level. KDE has made strides by labeling things like xmms as a "media player" description right beside it, but many apps have either no help section/documentation, it's incomplete or outdated, or the help is broken so you can't see it.

If Linux really needs to take a hint from BSD when it comes to the FreeBSD Handbook. Not just cobbled together howto's, but an offical document. As for the other projects, well they just need to get off their ass and document things. Why not stick a Wiki on linux.org? Is there some politicle battle I'm unwaware of?

Re:From TFA (1)

Kokuyo (549451) | more than 10 years ago | (#10212227)

This doesn't only apply to open source... Writing code is cool. It's like building a car engine. Or like putting together a PC. It's just fun and it is achallenge... but explaining it afterwards in a way that even a monkey is supposed tu understand it is just boring. The big difference between paid programmers and oss coder is that some of them get paid while others usually don't. So I don't blame them. I mean they do us a favor. So nobody can expect to be treated like a well paying customer. I rather like this "search for message board posts on the topic" kind of documentation. Because even when there is a great documentation it's always the error they didn't think of that you're having. So you'll be left to search the web once again anyway. What I am asking myself: How in the seven hells did I get along without the net?

Re:From TFA (0)

Anonymous Coward | more than 10 years ago | (#10212233)

It's far not enough to just have good program. The well written documentations are even more important.

Re:From TFA (4, Informative)

UnderScan (470605) | more than 10 years ago | (#10212125)

HEY MODS! PARENT IS A TROLL!
There is nothing in the article about being homo.

The real article.

Two Years Before the Prompt: A Linux Odyssey
Derek Croxton, 09 September 2004

Two Years Before the Prompt: A Linux OdysseyTwo Years Before the Prompt:
A Linux Odyssey

A novice's greatest fear is sitting in front of a motionless command prompt with no idea what to type; or, as so frequently happens, knowing a command that he copied verbatim from a document discovered on the internet somewhere, but with no idea of what it means or how to alter it if it doesn't behave exactly as advertised. Linux has never quite escaped its reputation as an OS for geeks who like those command prompts. I made the plunge into Linux at the start of 1993 under the assumption that things had improved enough that I could get around Linux without the command prompt at all, or at least with minimal exposure to it.

What I want to report on here is some of the "gotchas" of being a new Linux user. I've tried at least half a dozen different distributions, and along the way I've been hit with just about every problem an inexperienced user could face. Partly this is because I push Linux to do so many things for me - web server, video player, email server, database backend, programming environment - including many that I had not previously tried on Windows. In spite of my title, however, I'm not going to try to make this article into a ripping yarn along the lines of Richard Henry Dana's book Two Years Before the Mast. I'm also not writing a critique of Linux distributions, although I hope some developers out there might read this and get some ideas. My main purpose is to prepare new users for likely sticking points, as well as to reassure them about things that will not be as hard as they had feared. I went into my Linux experience with very little idea of what I was getting into; that makes it an adventure, but it's probably not the best way to go about things. Sometimes it helps to read that such-and-such a process is difficult. At least then you can work your way through it slowly, without the persistent fear that there is some easy, one-command feature that you could be using if only you knew what it was.

All of the distributions I have used are of the more user-friendly type. The reason I have gone through so many is that I keep discovering different things in them. What works on one might not work on another, but hopefully I can learn enough from one distribution that I can tweak another to my satisfaction. It is, in fact, the very diversity of various distributions that makes using Linux such a challenge. Ask a friend and he may suggest a solution to your problem that doesn't exist on your distribution. Naturally, anything can be configured, but it may be more trouble to get it to that point than to find a different solution. Therefore, I will not go into the details of each distribution, but rather give my overall experience, highlighting where distributions differ.

Linux distributions have put a lot of effort into making the install process as easy as possible, and this is definitely a good thing - if you can't get it installed, you aren't going to use it. I distinctly recall installing a version of Linux 6 years ago and trying to get XWindows (X11R6, for purists) running so I could escape the command line. I went through a lengthy setup process, but when it started asking questions like the horizontal and vertical refresh rates of my monitor, I knew I was in trouble. Nowadays, installation is often as simple as you make it: if you accept all the defaults, your only decision will be a password for the root user. I have had very little difficulty with any of my installs: keyboard, monitor, mouse, sound card, network card, and other essentials are usually automatically detected and configured without my having to do a thing. I did have one case of a disappearing monitor display and one of a non-functioning keyboard, and it is only fair to warn new users that these issues do crop up sometimes. To be fair, however, most people never have to install Windows, so they never have to deal with the issue of hardware compatibility and settings. Also, both of my installation problems came from pre-1.0 distributions. Usually the creator(s) of a distribution are especially willing to help with installation issues, since they are so fundamental. Configuring your system to work beyond the basics is more the user's responsibility: help can be found, but not as readily.

Most of my hardware has been easy to configure, but there is one exception: things associated with the laptop have rarely worked quite as I hoped, if they worked at all. Several distributions have had no trouble recognizing the touchpad on my laptop, but I haven't found anywhere to configured its advanced functions - things like being able to tap directly on the pad rather than using a button, or being able to scroll by dragging my finger on the right side of the pad - which are, if not quite essential, certainly very important to making the laptop comfortable to use. I haven't had any problem with the laptop display itself, but when I use an external monitor, the desktop is bigger than the display area, so I have to scroll with the mouse to see the whole display. The biggest problem I've had, however, concerns power management. Apparently this is not compiled into the Linux kernel by default, which means you have to recompile it yourself (unless you bought a pre-configured system) in order to monitor your battery life and use features like suspend mode. I actually took the plunge and recompiled the kernel myself once in an attempt to add power management. It's actually a lot easier than it sounds, since most of the choices involve picking things from a menu of options - there are few, if any, obscure command-line controls to learn. The new kernel worked, but, alas, it did not add the functionality I had hoped, and I lost some other features that I had taken for granted. Perhaps the lack of power management galls me especially because a battery icon appears on my taskbar in KDE, but clicking on it only brings up a screen that informs me that power management is missing - the torture of knowing that the possibility is there makes the absence of it that much harder to bear. And I want to be clear that most of the functionality that I miss in Linux on my laptop - probably all of it - is available in Linux, somewhere. If I had been able to buy the laptop with Linux pre-configured on it, no doubt everything would be fine. My point is that, if you install Linux yourself, you should be prepared to live without some features - or else do some serious digging to figure out how to enable everything the way you want it.

It is fortunate that distributions have taken to assigning reasonable defaults to most installation choices, because the one thing you will find about Linux (and open-source software generally) is that the number of choices available is enormous. If you were afraid open source software would leave you dependent on a single, common solution to various computing problems, you will be pleasantly surprised. Go look at your desktop settings and find that you can make your widgets look like Motif, Motif Plus, Plastik, Platinum, SGI, Compact, CDE, MS Windows 9x, and even .NET. If most of these are unfamiliar to you, don't worry: exploring Linux is half the fun. There is usually a Windows-look-alike alternative if you're feeling insecure in your new environment, but it's always interesting to play with the more traditional Linux alternatives. By default, Linux usually opens programs with a single click, instead of a double click like Windows; double-clicking on the title bar of a program "shades" it (reduces the window to just its title bar) instead of maximizing or restoring it, as in Windows. I actually prefer Windows behavior on these two items, but the point is that you can make it any way you want it - mixed, matched, and mis-matched, if you choose.

After you have spent days playing with all the different styles available to you, you can experiment with a completely different desktop environment. I normally use KDE, but Gnome is also very popular. A lot of the behavior is configurable the same way as in KDE, but there are alternatives as well. One feature of Gnome that I like is the ability to add "mini-icons" around the sides of an icon to indicate that a file is important, belongs to a certain category, or just that it's cool. After you've tried Gnome and KDE, you can learn that there is an entirely different layer underneath them, the "window manager," which you can also change. If you have a small amount of memory or like to use the keyboard for everything, IceWM may be for you. If IceWM isn't the solution, there are probably a dozen other alternatives, all of them more or less configurable to match your preferences. If the difference between widget style, window behavior, desktop environment, and window manager is still unclear to you - well, that's probably because it's unclear to me, too. I have certain notions of what they each mean, but I could not begin to give a good definition of each. The great thing is that you don't need to. For most purposes, you can choose what you like at each level, without having to know too much about the details behind them. If you find yourself wanting to do more advanced things, the ability to configure every detail to your heart's delight is readily available, and most of the resources for learning how to do it. All it takes is time and persistence.

Configurability is the forte of Linux, and OSS generally. It seems that every program has its ".conf" file where it stores its settings. Changing a feature is usually a matter of editing the .conf file to enable or disable options, point to different directories, or allow or disallow certain users permission to do something. I have to admit that I was not enamored of .conf files in the beginning. My first reaction was, "You want me to do what?" For the average Windows user, the idea of editing a configuration file is about as foreign as having to install the operating system himself. Since I am considerably more comfortable with computers than the average Windows user, I think I should prepare you for .conf files now: get used to them. Although things are getting better - and something like OpenOffice will not ask you to edit a text file to get it to work the way you want - the fact is that most Linux programs still operate this way. This fact would not be nearly so frustrating were it not that, often, the same program will have a gui configuration in Windows but only a text .conf file in Linux. Having written some cross-platform software before, I have trouble understanding why this should be the case, but I realize that the best thing to do is not to complain about it. The best thing would be for me to write a gui configuration tool for Linux; failing that, I need to learn about .conf files and use them. The fact is that, once you accept the idea of it, editing .conf files is not that difficult. You never have to leave your friendly gui environment; just fire up kate (the advanced KDE text editor) and make the changes there. Almost all .conf files that I have actually looked at are very user-friendly: most options are already included, even if they are commented out, and come with a sentence or two explaining what purpose they serve. While potentially intimidating, .conf files are not as bad to use as they might appear.

I mention the "kate" editor because it is my favorite Linux text editor, but it may not be available on your system. If not, Kwrite or some other gui editor is probably available, but you may find, on occasion, that you need a text editor that can run without a gui. If you're lucky, you will be able to use "nano," a friendly text editor that makes most of its commands visible at the bottom of your screen. If you're not lucky, you will be stuck using Emacs or Vi, two very old editors that have been around since before gui interfaces were an option. I've learned enough Vi that I can use it if I have to, but personally I think it is a crime to leave any end-user with nothing but these tools for console-based editing. They are optimized for efficiency, but only if the user is experienced. If you're not experienced, good luck remembering commands like ":quit!" to exit Vi without saving, or "ZZ" to exit and save - without any menus to guide you.

Desktop Linux Screenshot Linux developers have worked hard to make the Linux prompt as unnecessary for the user as the Windows prompt is for users of that other operating system, and they have come a long way. I'm afraid, however, that there is still a ways to go. To pick one example: This weekend, my wife was using my Linux computer and discovered a Macromedia Flash plugin for Linux. I was thrilled, since I didn't even know that one existed. But she had to call me over to get it installed. She watched as I opened a console and un-tarred the package, and asked in a puzzled tone, "Can't you just right-click on it or something?" I answered, honestly but sheepishly, "You probably can, but it's easier just to open a command prompt." You see, when I right-click on a package in KDE, I get three different options for how to compress it, but nothing for how to un-compress it. I don't doubt that there is some way of un-compressing it from the gui, but I long ago learned how to use the tar command, and I haven't gotten around to figuring out the "normal" way (which I would still prefer on occasion).

You may be wondering why I couldn't just double-click on the package to go inside it. The answer is that I could have, but that wouldn't have done me much good. The instructions from Macromedia explicitly state that the configuration tool must be run from the command line, so I needed something that would not just open the package, but unzip it and store it somewhere. And even then, I would still have had to get to a command line to install it. Since I spend a lot of time praising Linux to my wife (and anyone else who will listen), I was disappointed that I didn't have a self-extracting package that she could just double-click on to install, the way it always works in Windows. Here we come to Linux's weak spot: installing new software. There are at least three layers of problems here. The first is that most open-source software is under constant development, so there is no clearly-defined endpoint for a finished product. Compiling the latest version of the source code is, therefore, a common approach. But making a package is not all that difficult, and here we come to the second layer. Because Linux comes in so many different distributions and with so many different options, it is not always clear what a self-extracting package should actually do. For example, not all versions of Linux use the same default path for user-installed programs, and, even if they did, they frequently get adjusted by individuals. Gnome and KDE have different locations for icons on the desktop and programs in the main menu (the "start" menu in Windows), so which should the install package look for? If someone builds a package, he typically expects that the user can figure these things out for himself. It is rare to have a program that will install itself, create a desktop icon, and put itself in the menu tree. Actually, I don't think I've ever experienced this. So, if these things are important to you, you will do well to figure out how to do them yourself.

But the biggest problem by far with installing programs on Linux is the issue of shared libraries. These are the common functions that are used across multiple programs. A shared library gets installed once, in some accessible location, and then is used by various programs which link back to it. This saves disk space, because you don't have to make a copy of the same functionality for every program. Unfortunately, it comes at a serious cost: compatibility. In Windows, this issue is known as ".dll hell." In Linux, you might call it ".so hell" ("so" being the extension for these "shared objects"). It has probably caused me more frustration and hair-pulling than all the other issues in Linux combined. In principle, the issue seems simple: you can't install a program if the shared objects that it depends on - its "dependencies" - are not on the system. Any attempt to install the program will generally inform you what dependencies are missing, and it usually isn't too much trouble to go find the needed files on line somewhere. The problem comes if you need, say, version 4 for your new program, but you already have version 3 installed. You can't simply overwrite version 3, because then all the existing programs that depend on it will break. Apparently you can't just have separate copies of 3 and 4, since I have yet to find an installation tool that will let you do this. Instead, you...well, frankly, I don't know what you do. I have yet to solve this problem, and it continues to bother me. Most distributions seem to have adopted the solution of developing their own packages of software, designed to work with their version of Linux. This is important because, remember, some very basic parts of the run-time environment, such as which widgets are used, are not built-in. A programmer has to decide if he wants to use GTK+ or Qt, and whichever he chooses has to be available on the computer the program runs on. Since a distribution comes with a large amount of software installed, it is important to make some basic decisions about which versions are being used at the distribution level. Then you can compile the appropriate packages of an array of commonly-used programs and make them available for download, with the assurance that the package should work with the distribution.

At its best, this works pretty well. A distribution may have hundreds of programs in its dockyard, all OSS, all available for convenient browsing and download. Unfortunately, there are always programs not in the dockyard that I want to install. Sometimes they work, but it seems at least as common that they fail on some dependency. Sometimes when I try to install a program with a missing dependency, I will go find the needed file and install it, only to find that it, too, is missing a dependency. This process of finding deeper and deeper dependencies will continue until, ultimately, I find something that conflicts with file I already have, and there my searching ends. It is a long way from double-clicking on a self-extracting installation file.

It would be pointless for me to beg the Linux experts to come up with a solution to this problem. I'm sure they are aware of it and would have done something if they could. What I hope for at best is more tutorials on how to deal with software installation. My little contribution here is just to make new users aware of the fact that it is, indeed, problematic. At first I couldn't believe it: how could Linux, which is so much better than Windows, be so much more difficult to install software on? If I had started with the knowledge that there are more issues than under Windows, that there are good reasons for this, and that there are certain steps that one can take to help make the process go smoothly, I would have been much happier.

I am a second generation Linux user. The first generation of Linux users are dedicated hackers with the in-depth knowledge needed to install, configure, and even modify Linux to run on their computers. The second generation are ordinary geeks, computer power users who are curious about this alternative to Windows and are willing to spend a good amount of time getting it running, but who don't have the same intimate knowledge of the technical side of computing, and don't have the ability to, say, write device drivers if their printer, modem, or sound card doesn't work. This group, in which I include myself, has benefitted from the maturing of the Linux os, especially the addition of GUI components that help smooth the transition from the traditional Windows framework. The third generation of Linux users - if they come to exist, which I sincerely hope they do - will be mainstream users who don't ever want to see a command prompt or edit a config file. This group will require a fully mature desktop environment, in which almost anything that can be done at the command prompt can be done through some GUI configuration tool.

Re:From TFA (-1)

Anonymous Coward | more than 10 years ago | (#10212132)

Fuck you.

Re:From TFA (1)

Quarters (18322) | more than 10 years ago | (#10212168)

laden with hyperlinks to homosexual lifestyle websites.

Screw this guy, right fellas!

So you've been to those websites, hmmm?

First thing to type at a command prompt.... (0)

kidgenius (704962) | more than 10 years ago | (#10211901)

Hello

:-)

Re:First thing to type at a command prompt.... (3, Funny)

Cat_Byte (621676) | more than 10 years ago | (#10212017)

[root@linux]# man what do I do now?
No manual entry for what
No manual entry for do
No manual entry for I
No manual entry for do
No manual entry for now?
[root@linux]#wtf?
-bash: wtf?: command not found
[root@DEV-INT-AS1 root]# computer, do something
-bash: computer,: command not found
[root@DEV-INT-AS1 root]#

(ok lets get out of this...X for exit?)

[root@DEV-INT-AS1 root]#X

ARGH!

Re:First thing to type at a command prompt.... (1)

blibloblu (810226) | more than 10 years ago | (#10212202)

% "How poorly would you rate the UNIX (so-called) user interface?
Unmatched ".

Not for novices (0, Funny)

Anonymous Coward | more than 10 years ago | (#10211905)

'A novice's greatest fear is sitting in front of a motionless command prompt with no idea what to type; or, as so frequently happens, knowing a command that he copied verbatim from a document discovered on the internet somewhere, but with no idea of what it means or how to alter it if it doesn't behave exactly as advertised. ...

Lets just make some rules here:

Linux is for Professionals.
Windows is for secretaries that support the IT professionals.

The End.

Re:Not for novices (0)

Anonymous Coward | more than 10 years ago | (#10211952)

...and here I am pulling $120 an hour writing J2EE code on a Windows box...

Linux: Not just for professionals
Windows: Not just for secretaries

OMG (5, Funny)

Donoho (788900) | more than 10 years ago | (#10211915)

'A novice's greatest fear is sitting in front of a motionless command prompt with no idea what to type;

It's as if he's looked into my very soul... or tapped into my webcam.

/.ed (1)

Fredrik Leijon (609309) | more than 10 years ago | (#10211922)

did they host the site on a 2400bps modem ?

Please.... (4, Insightful)

Cocoronixx (551128) | more than 10 years ago | (#10211931)

$command -h
$command --help
man $command
info $command
http://www.google.com/search?q=$command

use brain;

Re:Please.... (5, Insightful)

fajaboard (795317) | more than 10 years ago | (#10211985)

The problem is that n00bs don't know what "command" to even look up.

$how do i read a file from my floppy? "mount?" who woulda thought.

The problem is knowing where to look sometimes. I am still learning useful commands.

Re:Please.... (1)

Planesdragon (210349) | more than 10 years ago | (#10212179)

The problem is that n00bs don't know what "command" to even look up.

And this should be solved at the prompt. There should be a "CLI helper" program, that looks for faulty and natural-language commands and suggests the proper one.

Typing "help" at a typical shell doesn't even give you an overview of useful commands. If you're lucky, you'll get a list (sans description) of the shell-specific commands.

The really, really sad part about this? Windows's command promt works extremely well. It doesn't do everything that Linux's does by far, but learning what it does do is amazingly easy.

apropos (1)

ChristTrekker (91442) | more than 10 years ago | (#10212230)

True. But if anybody introduced you to the concept of "man $commandname" or "info $commandname" you should also have heard of "apropos $whatyoureallywanttodo". Helpful Linux geeks that aren't telling the newbies about apropos/man/info are doing the community a disservice.

Re:Please.... (0)

Anonymous Coward | more than 10 years ago | (#10212007)

And we have found the attitude that will keep linux in the shadows forever.

Re:Please.... (1)

TheRealMindChild (743925) | more than 10 years ago | (#10212010)

You have got to be kidding me. Say Grandma Jones just bought a machine and her grandson installed WHATEVER version of linux on there. For whatever reason, she boots up, and there is a command prompt. How will she know what to type? I mean, christ, how on earth does she even know what COMMANDS are available, LET ALONE how to get help on them? Google seems the most likely candidate, but have you ever googled for a Unix/Linux command? More times then not, you get a bunch of crap that holds no relevance to what you are looking for.

Re:Please.... (0)

Anonymous Coward | more than 10 years ago | (#10212197)

Say Grandma Jones just bought a machine and her grandson installed WHATEVER version of linux on there. For whatever reason, she boots up, and there is a command prompt. How will she know what to type?

Anyway, isn't she a horse? Where will she find a keyboard that works with hooves?

Re:Please.... (0)

Anonymous Coward | more than 10 years ago | (#10212032)

I remember years ago sitting down in front of a VAX-11/780 terminal. At that time I had never seen one before and I really felt helpless. For no apparent reason I typed "help" and lo and behold I really did get help. The help command gave a list of the available commands I could use along with a good explanation when I typed "help ".

I could also get a list of parameters for the command and help on each of these.

Re:Please.... (2, Insightful)

pomakis (323200) | more than 10 years ago | (#10212059)

command -h $command --help man $command info $command http://www.google.com/search?q=$command use brain;

Knowing these tricks assumes that you've already had some experience with command-line interfaces. I'm sorry, but none of the examples above are common sense to anyone without command-line experience (except maybe the Google search).

Re:Please.... (0)

Anonymous Coward | more than 10 years ago | (#10212133)

This would seem to replace any tech books, even the insanely popular O'Reilly series. Sometimes a book is just convenient.

Like when you're, y'know, offline for some reason? It's hard to know, reflexively, that e.g. hotplug (?) will map your usb drives to SCSI devices. It certainly didn't seem to make this clear in any of my man or info pages. I wound up trying a lot of funky stuff to recognize the usb drive and kept getting closer and closer. Little did I know that I could just "mount /dev/sda1"; because obviously it's a SCSI device. Just like my IDE cd recorder.

Typcial (0)

Anonymous Coward | more than 10 years ago | (#10212139)

This is the arrogance I've come to expect from people like you.

http://reddun.blogspot.com/2004/09/typical-arrog an ce.html

--Tyler

Re:Please.... (1)

jellomizer (103300) | more than 10 years ago | (#10212167)

Although I was an early adopter of Linux back in 1994 I still remembering having trouble when I first got it. And I had a strong DOS background.

1. ls except for dir well DIR did work but it kinda sucked.

2. now that I see the files and I found out that cd worked too. So now I can at least explore the file system. (Kinda it was hit and miss because I didn't know much about ls -l even when I did a man on these commands I wasn't use to taking in information in that method so the man commands were useless for a long time. So I never knew for a while what was a Directory, an executible file or a normal file. Unless ls was color coding the stuff.

3. Now after I masterd the file system then mounting floppies, CD. Was a foregn concept to me. Attacing a seporate piece of equiptment ontop of the file system seemed weird to me.

Now I was a person who had strong DOS background and understood some concepts of the command prompt and I still had to take some time to addapt. Now if you get a person who has always used a GUI now what are they going to try to type in. "HELP" if they were to take a guess. And guess way a lot of distros dont have a help command so I guess they are SOL. You should use your brain before posting a comment on how to get help for a command that the newbie doesn't even know is there.

Education. (4, Informative)

Raven42rac (448205) | more than 10 years ago | (#10211938)

Any halfway decent teacher/guide will include an overview of the "man" command. So if you don't know the arguments/what a command does, just type "man command", that will teach you fairly quickly what a command does.

Re:Education. (3, Insightful)

dcordeiro (703625) | more than 10 years ago | (#10212054)

this is when you know what command to use. If you don't?

and even if you know the command: man man
man, version 1.5k

usage: man [-adfhktwW] [section] [-M path] [-P pager] [-S list]
[-m system] [-p string] name ...

uau... much better now

Admit it: cli is not for joe average that only needs to change its pc configuration once in a decade. Even if he learns something, he will forget everything in a couple of months

Re:Education. (0)

Anonymous Coward | more than 10 years ago | (#10212083)

Agreed. But it's when you don't know what command you need that the command line sucks. What man doesn't do is tell you what command you should be looking for to accomplish a desired task. Time in front of the prompt and a good book is what I found to be most benificial. When someone is looking over your shoulder, you don't nesessarily have copious amounts of time.

Re:Education. (1)

Mant (578427) | more than 10 years ago | (#10212099)

just type "man command", that will teach you fairly quickly what a command does.

I've worked on UNIX systems for something like 10 years, and I can say that "man" is frequently my last resort. Usenet/Google Groups, normal Google searches, freindly UNIX admins, some bookmarked web pages and books are all things I try before using man.

Maybe man on Linux is much more useful than the AIX system we use, but frequently I find it far too cyptic to be of use. The sort of man pages I see are only going to scare a relative newbie, not help.

Re:Education. (1)

Ignignot (782335) | more than 10 years ago | (#10212144)

It isn't more useful. The best place to go is google IMHO. The problem with man is that it doesn't give any sort of hands on examples usually, sort of like the difference between knowledge and wisdom. Man pages are obsoleted by current search technology and the irreplacable veteran user who helps other people.

Re:Education. (1)

Alkonaut (604183) | more than 10 years ago | (#10212156)

Any user interface that requires you have a friend or a book to help you is clearly not user friendly or intuitive enough.

The whole catch-22 of the "man" command is that it assumes you know what the command is called in the first place. A good "man" would not only display a short description of commands, it would also:

- Be called "manual" or something even more intuitive, so that a first-time cli user would find it.

- Not assume that I know what command I want help about, but rather what I want to do.

Re:Education. (5, Insightful)

TrailerTrash (91309) | more than 10 years ago | (#10212190)

I have a hard time with man - yes, it's full-on documentation, but 19 times out of 20, I don't need the 15 highly obscure switches for a command, I just need the command in its simplest form.

What man is missing is an example section, e.g., "To find all files with mary in the title, use ls -R *mary*" or whatever; "to find all files modified in the last 10 days do..."

I will say right out that perhaps such a facility exists, but I am unaware. I am a GUI user of Linux (SuSE 9.1 X86_64) and my command line skills have rusted since I lived in VMS 20 years ago...

Re:Education. (0)

Anonymous Coward | more than 10 years ago | (#10212231)

Man pages are great for details - IF you know what the command is in the first place. But where's the nice easy-reference guide that tells you what command you're looking for?

Mirror anybody? (1)

RenHoek (101570) | more than 10 years ago | (#10211940)

Site is dead within minutes.. mirrors anybody?

Mirrored (5, Informative)

paulproteus (112149) | more than 10 years ago | (#10212041)

Here [jhu.edu] , all you freeloaders ;-). I'll take it down later today.

I just spoke with him on the phone, too; cool guy. I don't think he was expecting anyone to actually call him :-).

I remember those days.... (1)

b12arr0 (3064) | more than 10 years ago | (#10211946)

After loading SLS linux way back when. Having a friend look over my shoulder, telling me "now type in 'ls', now type in 'vi'". For the couple of days I was happy being able to list files, check my disk space and read email with elm and pine. :) No KDE, No Gnome, but I had good ole olwm and 30 or so floppies if I messed it up.

I can't get to the link.....

Fear? (2, Funny)

amacedo (779821) | more than 10 years ago | (#10211947)

'A novice's greatest fear is sitting in front of a motionless command prompt with no idea what to type; or, as so frequently happens, knowing a command that he copied verbatim from a document discovered on the internet somewhere, but with no idea of what it means or how to alter it if it doesn't behave exactly as advertised.' Is it? I for once get all fuzzy inside when that happens. It's called being a geek.

poetic justice (5, Funny)

Anonymous Coward | more than 10 years ago | (#10211963)

someone without a clue writes a crappy essay

someone else w/o a clue links it on slashdot

lemmings knock the site offline

but with no idea of what it means or how to alter (1)

REBloomfield (550182) | more than 10 years ago | (#10211964)

($0 & $0 &)

Re:but with no idea of what it means or how to alt (1, Funny)

Anonymous Coward | more than 10 years ago | (#10212025)

in the bash shell
:(){ :|:& };:

in perl
perl -e "fork while fork"

http://en.wikipedia.org/wiki/Wabbit [wikipedia.org]

I disagree with his theses (-1, Flamebait)

Anonymous Coward | more than 10 years ago | (#10211968)

A novice's greatest fear is sitting in front of a motionless command prompt with no idea what to type

I think a novice's greatest fear is getting raped.

for pity's sake. (-1, Flamebait)

lkcl (517947) | more than 10 years ago | (#10211998)

use debian's apt and its graphical friends if you're that way inclined.

are pee emm is just so pathetic it's unreal, and are pee emm makes up the majority of linux installers (redhat 40%, suse, mandrake).

this is _so_ not a problem for debian system i can't understand why people still bitch about it.

plus it's also possible to import the entire rpm tree (plus the dependencies) into apt if you absolutely must, because apt understands rpms.

Re:for pity's sake. (1)

grumbel (592662) | more than 10 years ago | (#10212127)

'apt-get' is part of the problem, not the solution. Try for example to keep a Gnome1.4 and a Gnome2.x together on a Debian, apt-get doesn't help you here, you would need to compile everything yourself. Same with basically every other programm, you can't keep to different version of it unless the maintainer as specefically prepared the packages to handle this, else you will got a conflict and one programm will get removed as soon as you try to install the other.

Huh? (0, Troll)

Paulrothrock (685079) | more than 10 years ago | (#10212015)

what little documentation exists is laden with hyperlinks to homosexual lifestyle websites.

Does he mean goatse.cx? What documentation has he been looking at?!?

Blank command prompt (0)

Anonymous Coward | more than 10 years ago | (#10212018)

Sitting in front of a blank command prompt is not something to be frightened of, it's just a waste of time as there are so many better ways of getting the job done. Those of us with lives to get on with simply don't do it.

hmmm ... what shall i try now? (0, Troll)

drmancini (712059) | more than 10 years ago | (#10212021)

This reminds me of a padawan linux user that joined a linux chat i visited frequently about a year ago ... he started asking n00b questions about removing all files from the /tmp directory ... well after not understanding the more advanced users' advice in the form of RTFM, someone got fed up of the dude and told him that the best way to do so was ... obviously ... rm -rf / ...

... and guess what? ... the moron did it ... we silently watched the moron send his entire system (and his mounted windows partition) straight to hell ...

I think that next time he RTFM ...

Re:hmmm ... what shall i try now? (2, Insightful)

rjstanford (69735) | more than 10 years ago | (#10212124)

... and guess what? ... the moron did it ... we silently watched the moron send his entire system (and his mounted windows partition) straight to hell ...

I think that next time he RTFM ...


No, he probably never installed Linux again, and influenced countless friends and business associates not to try it, because it was unstable and unsupported. Seriously.

Re:hmmm ... what shall i try now? (1)

drmancini (712059) | more than 10 years ago | (#10212158)

yeah, right ... and imagine a beowulf cluster of these morons :-P ...

no really ... he actually installed it again, because he really wanted to learn linux ... unfortuantelly he had to learn the hard way

Re:hmmm ... what shall i try now? (2, Insightful)

WhatAmIDoingHere (742870) | more than 10 years ago | (#10212165)

So instead of actually helping the poor guy, you people were hostile towards him and in the end, caused him to lose all that he had worked on up to that point.

Why would he want to try Linux again after that?

The problem with making Linux mainstream, is that there WILL be new people. And you're going to have to play nice with them or they'll go right back to Windows.

symphony OS (2, Insightful)

lkcl (517947) | more than 10 years ago | (#10212028)

takes care of the multi-.so problem... by installing each package AND ITS DEPENDENCIES in a per-package subdirectory.

mad as xxxx and staggeringly heavy on disk space but it takes the problem away.

Re:symphony OS (2, Insightful)

grumbel (592662) | more than 10 years ago | (#10212086)

A clever filesystem could even remove the diskspace problem by simply hardlinking the dependencies in, instead of copying them. So you only still have the dependency only once, but ever application sees its own pseudo-copy of it.

Goto tldp.org (4, Informative)

Anonymous Coward | more than 10 years ago | (#10212035)


The linux documentation project is great. Lots of howtos, but also great guides.

I always recommend for a newbie to read:
Introduction to Linux - A Hands on Guide
Bash Guide for Beginners
The Linux System Administrators' Guide (for "power users")
Advanced Bash-Scripting Guide (for "power users")

And maybe the network administrator guide.

All these are cool because they are generally distro agnostic. Anybody can benifit from their knowledge.

AND remember GOOGLE!!!!

The command line IS your friend. It's another form of user interface, and combined with a gui like X makes Linux (and other Unix-like operating systems) have the most flexible and powerfull user interface aviable.

At times it may not be freindly to newbies, but once you have a decent idea what is going on, it's definately worth it.

Those guides will give you the nessicary tools to understand and become comfortable with your Linux installation. No more fighting thru layers of obsofacation and a deep bridge becuase the knowledge of MS insiders/advanced administrators vs Windows users. In linux users can be as knowlegable as the best programmer or developer.

But you don't have to any more due to people like Gnome/KDE/Fedora/Redhat/Suse/Mandrake etc etc. Now it's just a matter of what you want and what you feel most comfortable about.

everythin new has to be learned the hard way... (0)

Anonymous Coward | more than 10 years ago | (#10212037)

jeeez what kinda moron he who wrote that article?

take maths. do you know shit with your maths algebra and analysis knowledge to sit down and solve some non-trivial shit in the science/maths/physics/bio/genetics/$stuff world?

anything and everything has to be learned when being new to the subject. what kinda moron is he, that he thinks its different in the it world, or even with linux?

newbies normally dont use commandline, and shouldnt.

elementary school: learn how to turn on/off puter
high school: learn how to click gui shit
college: learn how to use commandline
uni: learn the inside of your os, howto code
ph.d.: become active member of any community, get involved
god: reset, halt, powerdown

Fear? (3, Funny)

UncleBiggims (526644) | more than 10 years ago | (#10212046)

A novice's greatest fear is sitting in front of a motionless command prompt with no idea what to type...

This is true, a novice's greatest computer fear is sitting there not knowing what to do. This is why a novice:

does not use linux

calls me all the time to ask stupid questions

has a pc infected with spyware

and so on

To me, the attraction of linux is having a need and then discovering how to fill that need. Then finding out that my solution is cludgy and could be done a different and better way. This leads to other cooler and more elegant solutions. Thus a process of learning that is both satisfying and productive. That's why I love linux and it is why the "novice" is afraid.

Re:Fear? (0)

Anonymous Coward | more than 10 years ago | (#10212159)

s/novice/non-thinking person/

man oh man (2, Funny)

192939495969798999 (58312) | more than 10 years ago | (#10212060)

Queue the obligatory "Orgazmo" theme song reference...

now you're a MAN!
a MAN, MAN, MAN!

If it's really that hard, Linux should come with a default command prompt that includes " for help, type man [command]. #"

All I learned (5, Funny)

Anonymous Coward | more than 10 years ago | (#10212068)

Hello,

Recently I've been introduced to an operating system known as Linux.

Lured by its low cost, I replaced Windows 98 on my computer with Linux. Unfortunately the more I use it the more I fear that this "Linux" may be an insidious way for the Dark One to gain a stronger foothold here on Earth. I know this may be a shocking claim, but I have evidence to back it up!

To begin with, Linux is based off of an older, obsolete OS called "BSD Unix". The child-indoctrinatingly-cute cartoon mascot of this OS is a devil holding a pitchfork. This OS -- and its Linux offspring -- extensively use what are unsettingly called "daemons" (which is how Pagans write "demon" -- they are notoriously poor spellers: magick, vampyre, etc.) which is a program that hides in the background, doing things without the user's notice. If you are using a computer running Linux then you probably have these "demons" on your computer, hardly something a good Christian would want! Furthermore in order to start or stop these "demons" a user must execute a command called "finger". By "fingering" a "demon" one excercises an unholy power, much the same way that the Lord of Flies controls his black minions.

Linux contains another Satanic holdover from the "BSD Unix" OS mentioned above; to open up certain locked files one has to run a program much like the DOS prompt in Microsoft Windows and type in a secret code: "chmod 666". What other horrors lurk in this thing?

Consider some of these other Linux commands: "sleep", "mount", "unzip", "strip" and "touch". All highly suggestive in a sexual nature. I know that our Lord cannot approve of these, and I urge them to be renamed to something appropriate to the Christian community. Interestingly "CONTROL-G" (the sixth key from the left of the keyboard) does an abort. To write files a "VI" editor is included. All these are to ensnare the unsuspecting christian who could get tempted by typing "VIVIVI" all day long.

Fourth, Linux uses a flavor of DOS known as Bash. Bash is an acronym for "Bourne Again Shell". On the surface this would appear to be supportive of the Lord. However, remember that even Satan can quote the bible for his own purposes! While I believe Linux may be born-again, its obvious by the misspelling of "born" that its not born-again in an Christian church. Will the lies ever cease?

Additionally, one of the main long-haired hippies involved with the GNU Free Software Foundation supports communism, contraception and abortion. He has consistently supported 60's counter-cultural "values", and his web site even advocates government support of contraception. He also wears fake halos, and has quips about his made-up church that relates to his free software. I find such blasphemy to be extremely unsettling.

One must also remember that the creator of Linux, a college student named Linux Torvaldis, comes from Finland. I'm sure all the followers of Christ are aware of the heritical nature of the Finnish: from necrophilia to human sacrifice, Finnish culture is awash in sin. I find little reason to believe anything good and holy could arise from this evil land.

Finally, let us remember that there is an alternative to using the Satan-powered Linux. I think history has shown us that Microsoft is quite holy. I'm told that its founder, William Gates is a strong supporter of our Lord and I encourage my fellow Christians to buy only his products to help keep the Devil at bay.

I wish I had more time to expound upon my findings. Unfortunately a family of Jews has moved in across the street and I must go speak to them of Jesus Christ before they are condemned to eternal hellfire.

Please investigate this as you see fit and I'm sure you'll reach the same conclusions that I have.

Lost in Linuxland (2, Insightful)

rueger (210566) | more than 10 years ago | (#10212111)

My experiences parallel the author's in one important way:

Yes, most user friendly distros will manage a forehead install [wordspy.com] , but invarably there will be at least one critical function that doesn't work. In my experience that has been Palm hotsync (always), printing over the Windows network (usually), and wireless networking (most recently).

I know from hard experience that trying to find a solution for any of these will involve hours if not days of trolling newsgroups, forums, and that special hell called man pages.

I'm not afraid of command prompts, or of learning new things, but I simply cannot afford to waste a whole day trying to print, or sync my calendar.

Re:Lost in Linuxland (4, Insightful)

pedestrian crossing (802349) | more than 10 years ago | (#10212171)

But once you're set up, you're set up for good. You can't afford to "waste a whole day", but it's not like you are going to have to "waste a whole day" every day, just once. It is called "learning".

unix' learning curve is vertical (2, Informative)

tezza (539307) | more than 10 years ago | (#10212152)

For all thos saying man command as an answer, this can cause more confusion. try man tar. There are a bewildering array of options, some create, some mentioning /dev/td0 [but not /dev/tdr0 that rewinds the device after completion]. Untarring and ungzipping is a fundamental operation, but it takes something like 30 steps to understand.

Further some man pages say 'this has moved to info', this has a bastardised Emacs commandset with pagination and hyperlinking, and the novice friendly Emacs keybindings.

Don't get me wrong, I use linux/cygwin/solaris every day of my whole life, but Geez, it took a long time to learn.

isn't this... (2, Interesting)

sanityimp (479) | more than 10 years ago | (#10212174)

Isn't this what printed manuals are for. if a use cant figure out how to use that then screw em.

And if theyre smart enough to download and install a distro they sure as hell are smart enough to look up some documentation ahead of time.

Fear of fdisk (2, Interesting)

firefarter (307327) | more than 10 years ago | (#10212175)

> A novice's greatest fear is sitting in front of a motionless command prompt with no idea what to type
Well, my greatest fear back when I was a n00b in '94 was if I got everything in fdisk right when trying to do a dual-boot install.

It got worse when I realized I mucked up the first time around!

oh right (4, Funny)

macshit (157376) | more than 10 years ago | (#10212178)

Actually, my greatest fear is Clippy.

...shudder...

Offtopic: Slashdot should Coralize popular links (3, Interesting)

aprosumer.slashdot (545227) | more than 10 years ago | (#10212186)

I know this is offtopic, however Slashdot should seriously consider Coralizing popular links by appending .nyud.net:8090 to the URL. At the very least the first page would be cached by the Coral servers.

While you're waiting for it to be unslashdotted (4, Informative)

hey! (33014) | more than 10 years ago | (#10212194)

Let me clue you in on the sly reference in the title.

It refers to Richard Henry's Dana's autobiographical Two Years Before the Mast, what is hands down not only among the best maritime adventures ever written, but is one of my favorite books of any kind.

Dana was a Harvard sophmore in the 1830s who came down with scarlet fever. As a result, his eyesight was suffering. The common prescription for this in those days was to take a sea voyage. Dana, despite being a young person of privilege, didn't take the normal route of travelling to Europe as a tourist. He signed on as a common seaman, a grueling, uncomfortable and by today's standards incredibly dangerous job. He joined a vessel that rounded the Horn in July (through the teeth of the Austral winter) bound for the wild and nearly uncharted region of California. The common seamen slept in the foc'sl, the part of the vessel at the bow; thus "Before the Mast". Two Years Before the Mast became historically important when gold was found at Sutter's Mill, setting of the great gold rush. At the time, it was practically the only book available that had any information about California.

His account is exciting and riveting, and probably unique. Many talented writers have written of the sea, and have gone on sea voyages, but I can't think of anyone else of Dana's literary powers who actually lived as common sailor, did their dangerous job, and slept and ate with them. Dana, who later became a lawyer and great advocate of seaman's rights, comes across as a ready lad, brave, good hearted and adventurous. A fine role model, I think, for people who buck the trend and go with Linux.

ahh yes (5, Funny)

geeveees (690232) | more than 10 years ago | (#10212195)

I still remember my first experience on a Redhat box. Being my usual 14 year old arrogant self I figured that I didn't have to read any manuals. Hey I figured out DOS by myself, right?

So I type in "X". "Hey wtf this stupid shit is broken, all I see is a grey background and some fucking weird cross? huh? linux sucks".

Oh boy :)

Solution: Look at the problem differently (0)

Anonymous Coward | more than 10 years ago | (#10212207)

If you really want to address this problem, ask the newbie what he thinks he should do. I might think to type "help" at the prompt, but this only provides a cryptic list of commands for the bash shell. If a more useful response of paragraph length were prepended to that list, that would be a start in the right direction.

On a desktop, provide an icon named "Beginners Click Here" that takes them to an html page that provides useful newbie info (advanced users could just delete the icon).

In other words, look at the problem the way a newbie would and provide useful, straightforward, un-geeked information.

Got it (0)

Anonymous Coward | more than 10 years ago | (#10212226)

Two Years Before the Prompt:
A Linux Odyssey

A novice's greatest fear is sitting in front of a motionless command prompt with no idea what to type; or, as so frequently happens, knowing a command that he copied verbatim from a document discovered on the internet somewhere, but with no idea of what it means or how to alter it if it doesn't behave exactly as advertised. Linux has never quite escaped its reputation as an OS for geeks who like those command prompts. I made the plunge into Linux at the start of 1993 under the assumption that things had improved enough that I could get around Linux without the command prompt at all, or at least with minimal exposure to it.

What I want to report on here is some of the "gotchas" of being a new Linux user. I've tried at least half a dozen different distributions, and along the way I've been hit with just about every problem an inexperienced user could face. Partly this is because I push Linux to do so many things for me - web server, video player, email server, database backend, programming environment - including many that I had not previously tried on Windows. In spite of my title, however, I'm not going to try to make this article into a ripping yarn along the lines of Richard Henry Dana's book Two Years Before the Mast. I'm also not writing a critique of Linux distributions, although I hope some developers out there might read this and get some ideas. My main purpose is to prepare new users for likely sticking points, as well as to reassure them about things that will not be as hard as they had feared. I went into my Linux experience with very little idea of what I was getting into; that makes it an adventure, but it's probably not the best way to go about things. Sometimes it helps to read that such-and-such a process is difficult. At least then you can work your way through it slowly, without the persistent fear that there is some easy, one-command feature that you could be using if only you knew what it was.

All of the distributions I have used are of the more user-friendly type. The reason I have gone through so many is that I keep discovering different things in them. What works on one might not work on another, but hopefully I can learn enough from one distribution that I can tweak another to my satisfaction. It is, in fact, the very diversity of various distributions that makes using Linux such a challenge. Ask a friend and he may suggest a solution to your problem that doesn't exist on your distribution. Naturally, anything can be configured, but it may be more trouble to get it to that point than to find a different solution. Therefore, I will not go into the details of each distribution, but rather give my overall experience, highlighting where distributions differ.

Linux distributions have put a lot of effort into making the install process as easy as possible, and this is definitely a good thing - if you can't get it installed, you aren't going to use it. I distinctly recall installing a version of Linux 6 years ago and trying to get XWindows (X11R6, for purists) running so I could escape the command line. I went through a lengthy setup process, but when it started asking questions like the horizontal and vertical refresh rates of my monitor, I knew I was in trouble. Nowadays, installation is often as simple as you make it: if you accept all the defaults, your only decision will be a password for the root user. I have had very little difficulty with any of my installs: keyboard, monitor, mouse, sound card, network card, and other essentials are usually automatically detected and configured without my having to do a thing. I did have one case of a disappearing monitor display and one of a non-functioning keyboard, and it is only fair to warn new users that these issues do crop up sometimes. To be fair, however, most people never have to install Windows, so they never have to deal with the issue of hardware compatibility and settings. Also, both of my installation problems came from pre-1.0 distributions. Usually the creator(s) of a distribution are especially willing to help with installation issues, since they are so fundamental. Configuring your system to work beyond the basics is more the user's responsibility: help can be found, but not as readily.

Most of my hardware has been easy to configure, but there is one exception: things associated with the laptop have rarely worked quite as I hoped, if they worked at all. Several distributions have had no trouble recognizing the touchpad on my laptop, but I haven't found anywhere to configured its advanced functions - things like being able to tap directly on the pad rather than using a button, or being able to scroll by dragging my finger on the right side of the pad - which are, if not quite essential, certainly very important to making the laptop comfortable to use. I haven't had any problem with the laptop display itself, but when I use an external monitor, the desktop is bigger than the display area, so I have to scroll with the mouse to see the whole display. The biggest problem I've had, however, concerns power management. Apparently this is not compiled into the Linux kernel by default, which means you have to recompile it yourself (unless you bought a pre-configured system) in order to monitor your battery life and use features like suspend mode. I actually took the plunge and recompiled the kernel myself once in an attempt to add power management. It's actually a lot easier than it sounds, since most of the choices involve picking things from a menu of options - there are few, if any, obscure command-line controls to learn. The new kernel worked, but, alas, it did not add the functionality I had hoped, and I lost some other features that I had taken for granted. Perhaps the lack of power management galls me especially because a battery icon appears on my taskbar in KDE, but clicking on it only brings up a screen that informs me that power management is missing - the torture of knowing that the possibility is there makes the absence of it that much harder to bear. And I want to be clear that most of the functionality that I miss in Linux on my laptop - probably all of it - is available in Linux, somewhere. If I had been able to buy the laptop with Linux pre-configured on it, no doubt everything would be fine. My point is that, if you install Linux yourself, you should be prepared to live without some features - or else do some serious digging to figure out how to enable everything the way you want it.

It is fortunate that distributions have taken to assigning reasonable defaults to most installation choices, because the one thing you will find about Linux (and open-source software generally) is that the number of choices available is enormous. If you were afraid open source software would leave you dependent on a single, common solution to various computing problems, you will be pleasantly surprised. Go look at your desktop settings and find that you can make your widgets look like Motif, Motif Plus, Plastik, Platinum, SGI, Compact, CDE, MS Windows 9x, and even .NET. If most of these are unfamiliar to you, don't worry: exploring Linux is half the fun. There is usually a Windows-look-alike alternative if you're feeling insecure in your new environment, but it's always interesting to play with the more traditional Linux alternatives. By default, Linux usually opens programs with a single click, instead of a double click like Windows; double-clicking on the title bar of a program "shades" it (reduces the window to just its title bar) instead of maximizing or restoring it, as in Windows. I actually prefer Windows behavior on these two items, but the point is that you can make it any way you want it - mixed, matched, and mis-matched, if you choose.

After you have spent days playing with all the different styles available to you, you can experiment with a completely different desktop environment. I normally use KDE, but Gnome is also very popular. A lot of the behavior is configurable the same way as in KDE, but there are alternatives as well. One feature of Gnome that I like is the ability to add "mini-icons" around the sides of an icon to indicate that a file is important, belongs to a certain category, or just that it's cool. After you've tried Gnome and KDE, you can learn that there is an entirely different layer underneath them, the "window manager," which you can also change. If you have a small amount of memory or like to use the keyboard for everything, IceWM may be for you. If IceWM isn't the solution, there are probably a dozen other alternatives, all of them more or less configurable to match your preferences. If the difference between widget style, window behavior, desktop environment, and window manager is still unclear to you - well, that's probably because it's unclear to me, too. I have certain notions of what they each mean, but I could not begin to give a good definition of each. The great thing is that you don't need to. For most purposes, you can choose what you like at each level, without having to know too much about the details behind them. If you find yourself wanting to do more advanced things, the ability to configure every detail to your heart's delight is readily available, and most of the resources for learning how to do it. All it takes is time and persistence.

Configurability is the forte of Linux, and OSS generally. It seems that every program has its ".conf" file where it stores its settings. Changing a feature is usually a matter of editing the .conf file to enable or disable options, point to different directories, or allow or disallow certain users permission to do something. I have to admit that I was not enamored of .conf files in the beginning. My first reaction was, "You want me to do what?" For the average Windows user, the idea of editing a configuration file is about as foreign as having to install the operating system himself. Since I am considerably more comfortable with computers than the average Windows user, I think I should prepare you for .conf files now: get used to them. Although things are getting better - and something like OpenOffice will not ask you to edit a text file to get it to work the way you want - the fact is that most Linux programs still operate this way. This fact would not be nearly so frustrating were it not that, often, the same program will have a gui configuration in Windows but only a text .conf file in Linux. Having written some cross-platform software before, I have trouble understanding why this should be the case, but I realize that the best thing to do is not to complain about it. The best thing would be for me to write a gui configuration tool for Linux; failing that, I need to learn about .conf files and use them. The fact is that, once you accept the idea of it, editing .conf files is not that difficult. You never have to leave your friendly gui environment; just fire up kate (the advanced KDE text editor) and make the changes there. Almost all .conf files that I have actually looked at are very user-friendly: most options are already included, even if they are commented out, and come with a sentence or two explaining what purpose they serve. While potentially intimidating, .conf files are not as bad to use as they might appear.

I mention the "kate" editor because it is my favorite Linux text editor, but it may not be available on your system. If not, Kwrite or some other gui editor is probably available, but you may find, on occasion, that you need a text editor that can run without a gui. If you're lucky, you will be able to use "nano," a friendly text editor that makes most of its commands visible at the bottom of your screen. If you're not lucky, you will be stuck using Emacs or Vi, two very old editors that have been around since before gui interfaces were an option. I've learned enough Vi that I can use it if I have to, but personally I think it is a crime to leave any end-user with nothing but these tools for console-based editing. They are optimized for efficiency, but only if the user is experienced. If you're not experienced, good luck remembering commands like ":quit!" to exit Vi without saving, or "ZZ" to exit and save - without any menus to guide you.

Desktop Linux Screenshot Linux developers have worked hard to make the Linux prompt as unnecessary for the user as the Windows prompt is for users of that other operating system, and they have come a long way. I'm afraid, however, that there is still a ways to go. To pick one example: This weekend, my wife was using my Linux computer and discovered a Macromedia Flash plugin for Linux. I was thrilled, since I didn't even know that one existed. But she had to call me over to get it installed. She watched as I opened a console and un-tarred the package, and asked in a puzzled tone, "Can't you just right-click on it or something?" I answered, honestly but sheepishly, "You probably can, but it's easier just to open a command prompt." You see, when I right-click on a package in KDE, I get three different options for how to compress it, but nothing for how to un-compress it. I don't doubt that there is some way of un-compressing it from the gui, but I long ago learned how to use the tar command, and I haven't gotten around to figuring out the "normal" way (which I would still prefer on occasion).

You may be wondering why I couldn't just double-click on the package to go inside it. The answer is that I could have, but that wouldn't have done me much good. The instructions from Macromedia explicitly state that the configuration tool must be run from the command line, so I needed something that would not just open the package, but unzip it and store it somewhere. And even then, I would still have had to get to a command line to install it. Since I spend a lot of time praising Linux to my wife (and anyone else who will listen), I was disappointed that I didn't have a self-extracting package that she could just double-click on to install, the way it always works in Windows. Here we come to Linux's weak spot: installing new software. There are at least three layers of problems here. The first is that most open-source software is under constant development, so there is no clearly-defined endpoint for a finished product. Compiling the latest version of the source code is, therefore, a common approach. But making a package is not all that difficult, and here we come to the second layer. Because Linux comes in so many different distributions and with so many different options, it is not always clear what a self-extracting package should actually do. For example, not all versions of Linux use the same default path for user-installed programs, and, even if they did, they frequently get adjusted by individuals. Gnome and KDE have different locations for icons on the desktop and programs in the main menu (the "start" menu in Windows), so which should the install package look for? If someone builds a package, he typically expects that the user can figure these things out for himself. It is rare to have a program that will install itself, create a desktop icon, and put itself in the menu tree. Actually, I don't think I've ever experienced this. So, if these things are important to you, you will do well to figure out how to do them yourself.

But the biggest problem by far with installing programs on Linux is the issue of shared libraries. These are the common functions that are used across multiple programs. A shared library gets installed once, in some accessible location, and then is used by various programs which link back to it. This saves disk space, because you don't have to make a copy of the same functionality for every program. Unfortunately, it comes at a serious cost: compatibility. In Windows, this issue is known as ".dll hell." In Linux, you might call it ".so hell" ("so" being the extension for these "shared objects"). It has probably caused me more frustration and hair-pulling than all the other issues in Linux combined. In principle, the issue seems simple: you can't install a program if the shared objects that it depends on - its "dependencies" - are not on the system. Any attempt to install the program will generally inform you what dependencies are missing, and it usually isn't too much trouble to go find the needed files on line somewhere. The problem comes if you need, say, version 4 for your new program, but you already have version 3 installed. You can't simply overwrite version 3, because then all the existing programs that depend on it will break. Apparently you can't just have separate copies of 3 and 4, since I have yet to find an installation tool that will let you do this. Instead, you...well, frankly, I don't know what you do. I have yet to solve this problem, and it continues to bother me. Most distributions seem to have adopted the solution of developing their own packages of software, designed to work with their version of Linux. This is important because, remember, some very basic parts of the run-time environment, such as which widgets are used, are not built-in. A programmer has to decide if he wants to use GTK+ or Qt, and whichever he chooses has to be available on the computer the program runs on. Since a distribution comes with a large amount of software installed, it is important to make some basic decisions about which versions are being used at the distribution level. Then you can compile the appropriate packages of an array of commonly-used programs and make them available for download, with the assurance that the package should work with the distribution.

At its best, this works pretty well. A distribution may have hundreds of programs in its dockyard, all OSS, all available for convenient browsing and download. Unfortunately, there are always programs not in the dockyard that I want to install. Sometimes they work, but it seems at least as common that they fail on some dependency. Sometimes when I try to install a program with a missing dependency, I will go find the needed file and install it, only to find that it, too, is missing a dependency. This process of finding deeper and deeper dependencies will continue until, ultimately, I find something that conflicts with file I already have, and there my searching ends. It is a long way from double-clicking on a self-extracting installation file.

It would be pointless for me to beg the Linux experts to come up with a solution to this problem. I'm sure they are aware of it and would have done something if they could. What I hope for at best is more tutorials on how to deal with software installation. My little contribution here is just to make new users aware of the fact that it is, indeed, problematic. At first I couldn't believe it: how could Linux, which is so much better than Windows, be so much more difficult to install software on? If I had started with the knowledge that there are more issues than under Windows, that there are good reasons for this, and that there are certain steps that one can take to help make the process go smoothly, I would have been much happier.

I am a second generation Linux user. The first generation of Linux users are dedicated hackers with the in-depth knowledge needed to install, configure, and even modify Linux to run on their computers. The second generation are ordinary geeks, computer power users who are curious about this alternative to Windows and are willing to spend a good amount of time getting it running, but who don't have the same intimate knowledge of the technical side of computing, and don't have the ability to, say, write device drivers if their printer, modem, or sound card doesn't work. This group, in which I include myself, has benefitted from the maturing of the Linux os, especially the addition of GUI components that help smooth the transition from the traditional Windows framework. The third generation of Linux users - if they come to exist, which I sincerely hope they do - will be mainstream users who don't ever want to see a command prompt or edit a config file. This group will require a fully mature desktop environment, in which almost anything that can be done at the command prompt can be done through some GUI configuration tool.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?