Slashdot Mirror


Two Years Before the Prompt: A Linux Odyssey

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.'"

17 of 499 comments (clear)

  1. .so hell by BoldAC · · Score: 3, Informative

    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.

    1. Re:.so hell by Xner · · Score: 4, Informative

      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.

      --
      Pathman, Free (as in GPL) 3D Pac Man
    2. Re:.so hell by LnxAddct · · Score: 3, Informative

      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

    3. Re:.so hell by IamTheRealMike · · Score: 3, Informative
      Of course, not every single person maintaining a library is as careful as the glibc people

      The glibc people aren't careful at all. They are quite, quite happy to break software if they believe the users programs to be "broken". They've broken even high profile apps like Mozilla this way, because their interpretation of a spec was different to everybody elses. But no, Mozilla was "broken" and whoever wrote that function should be "punished" according to the maintainer.

      The glibc group, along with many many other free software projects, usually believe they are maintaining backwards compatibility. In practice they are at most maintaining ABI compatibility which is not enough: the interface of an API is so much more than the layout of its structures and prototypes of its functions.

      I've written a guide on how to write good shared libraries. It deals a lot with versioning and how to avoid breaking software.

      I'm hoping it can be peer reviewed and published somewhere soonish, in the next few weeks. I'd post the draft here but the server hosting it seems to be down.

    4. Re:.so hell by Lodragandraoidh · · Score: 3, Informative

      Slackware has a package manager - but I usually don't bother because it uses plain tar balls; I download the tar balls from a Slackware mirror (the distro generally has everything I need) and extract what I need. Haven't run into any compatibility issues - ever.

      I think if you stay inside of your distribution you won't have problems. The problem is when you download something outside of the distro and try to integrate it with your system. Then you get what you are asking for.

      If you want to load a particular application - see if your distro has it on their package list first before downloading it from somewhere else. The distribution creators will have integrated it with your distro elimenating headaches for you.

      If you must download something from outside of your distro - understand that you may have to do some integration work.

      That being said, I have had very good luck loading some packages outside of what Slackware provides. I attribute it to the following:

      1. Slackware conforms to the Linux filesystem standard.
      2. The applications I have downloaded also conform to the Linux filesystem standard.
      3. The applications I have downloaded did not use deprecated or experimental functions within the libraries they call (most libraries are good about staying backwards compatible for standard functions).

      The most problems I have had doing integration was trying to get OSS applications to build under SUN Solaris. SUN packages change the default locations for various things (most notably, apps you would normally find under /usr/local/... end up in /opt/sfw/...) - and the apps I have to build by hand are looking elsewhere. I have also had environment problems - mostly missing path variables for libraries. Given that, the problem is not unique to Linux - but I would suggest it is less of a problem with Linux (provided you try to stay inside of your distribution - and only integrate outside apps when absolutely necessary) than with other operating systems, from my own experiences.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
  2. Re:.so hell NOT NO MORE FOR ME! by Anonymous Coward · · Score: 5, Informative

    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.

  3. Education. by Raven42rac · · Score: 4, Informative

    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.

    --
    I hate sigs.
  4. Goto tldp.org by Anonymous Coward · · Score: 4, Informative


    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.

  5. Mirrored by paulproteus · · Score: 5, Informative

    Here, 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 :-).

    --
    |/usr/games/fortune
  6. Re:From TFA by fafaforza · · Score: 4, Informative

    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.

  7. Re:From TFA by UnderScan · · Score: 4, Informative
    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

  8. While you're waiting for it to be unslashdotted by hey! · · Score: 4, Informative

    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.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  9. Re:.so hell NOT NO MORE FOR ME! by magefile · · Score: 3, Informative

    1.) Apt works not just for debian packages, but for rpms, and can be installed on Fedora.

    2.) If you want that, it's easily done with a few config file edits.

    3.) I can't remember the last time I couldn't find an RPM. Or just built one myself using developer-supplied Specs files. Debian's system has everything (or so I've heard). And you can always compile a program, or roll your own binary package very easily.

  10. Re:.so hell NOT NO MORE FOR ME! by grumbel · · Score: 4, Informative

    apt-get isn't a killer app, its a distribution specfic workaround for a problem that should be fixed upstream. Beside that even apt-get is FAR from perfect, since there are the following problems:

    * stable is way behind everybody else, if some piece of software doesn't support your hardware, say XFree86, you are in deep throuble, hardly any newbie will stand this much longer then a few days

    * unstable on the other side while being more current can do havoc at any point, beside 'apt-get upgrade' isn't all that fun for modem users, hell even 'apt-get update' is already a serious problem for modem users. testing is still more a game of luck, sometimes it work sometimes it doesn't, nothing that I would give in the hands of a newbie.

    * apt-get doesn't fix dependency hell, it just works around it so that dependencies get automatically detected, apt-get however DOES NOT resolve conflicts in a user expected way, if library foo and library bar are incompatible, apt-get will remove everything that depends on the other when I want to install one of them.

    * apt-get can't install different versions of -dev packages in most cases since the includes conflict

    * apt-get is a one-way thing, it doesn't provide a roll-back. Simple example would be Gnome2, once it got released I took a look at it and it sucked, lots of features removed and stuff didn't work, was there a way to get Gnome1.4 back? No, I was stuck with Gnome2 thanks to apt-get. Sure, I could manually track each and every dependecy and install it in a seperate prefix, but thats nothing that a newbie wants to do.

    * apt-get depends extremly on the quality of the repository from which it grabs stuff, unofficial packages often cause throuble and if the maintainers of the repo to something ugly like removing a programm that you depend on, bad luck for you, there is no easy workaround, then to not use apt-get and do everything manually.

    A solution to the dependcy hell would be one that is not distrospecific and allows me to download and install any Linux stuff I want from the net, not just the one that some Debian maintainers thought would be worth packaging. It should also allow to install any number of different versions of the same programm without relying on extra work of the maintainer to handle the situation.

    Sadly many of the problems are caused by the FHS layout, which is now standardized and thus basically unfixable for a long long time.

  11. Re:Package maintenance by IamTheRealMike · · Score: 3, Informative
    Actually the main problem with making distro neutral packages is the lack of platform stability. In fact there isn't really a platform to speak of. The library your program needs will often not be there, or will be there but not in the right version. Dependency resolution gets you some way but doesn't solve the underlying problem, namely that popular libraries break backwards compatibility all the time.

    The second biggest problem is that of binary portability.

    Where files and such are put isn't actually that big a problem. I know that's what it looks like at first, I thought the same thing. But in practice, it's really not a problem.

    How do I know these things? Because for the last two years I've been working on a distribution neutral packaging format, that installs anywhere and is easy to use. Go check out the screenshots! There are demo packages you can use as well, like the Inkscape CVS nightly builds. Be warned, I think the Zile package isn't working quite right yet.

    Autopackage really needs more people working on it. Right now all the 3 main developers are in a time crunch and it's slowed right down to a crawl. If you want to see easy 1 click installs on Linux (easier than apt-get even for newbies ...) why not come on over and help out?

  12. Installation of Debian by dastrike · · Score: 3, Informative

    I strongly recommend installing straight to testing ('sarge') using the new Debian-Installer installer.

    The current stable ('woody') release (3.0) is way too outdated (over two years old now) for being able to provide an enjoyable desktop/workstation usage experience.

    The current testing on the other hand contains up to date versions of software and works very well. It will "soon" become the new stable release (3.1)

    --
    while true; do eject; eject -t; done
  13. A reply from the author by dcroxton · · Score: 3, Informative

    Yikes! I had no idea my review would stir up so much controversy. I don't want to add to the antagonism, but I would like to make a couple of points: (a) it is precisely when using a package management system that one runs into problems with different library versions. I've had a number of managed installations fail because the required library conflicts with an existing one. If there is an easy solution, wonderful! I would like nothing better than to know what it is. (b) while apt is wonderful, not everything is in apt. If you've never wanted to install a program that wasn't available in your distro's dockyard, you're lucky. (Or maybe I'm just too demanding.) (c) I'm not bashing Linux! I love Linux and I have invested many hours reading books, man pages, web sites, and experimenting with it. I would *much* prefer that my effort pay off with being able to switch 100% to Linux and ditch Windows altogether, than having simply to say, "Oh well, it was a nice idea, now back to Windows." I just wanted to point out that some things have been very difficult for me, in spite of the fact that I'm not an idiot (some of you will disagree with that judgment, I realize). I would like to push more friends and relatives into Linux, but I'm afraid to because I know they will run into some of the same problems, and I won't be able to help them. Sincerely, Derek

    --
    Sincerely, Derek

    A curious little blog