Two Years Before the Prompt: A Linux Odyssey 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.'"
.so hell (Score:3, Informative)
Re:.so hell (Score:5, Informative)
Re:.so hell NOT NO MORE FOR ME! (Score:5, Informative)
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.
Education. (Score:5, Informative)
Re:.so hell (Score:2, Informative)
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 (Score:2, Informative)
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 (Score:3, Informative)
Best newbie interface? (Score:3, Informative)
The Command Line - Best Newbie Interface? [slashdot.org]
Re:.so hell (Score:2, Informative)
When you run a binary which which was originally dynamically linked against version 3 or version 4 ldd loads either
The libfoo.so symlink tells ld which version to default to using when compiling new binaries with a "-lfoo" on the link command line.
Goto tldp.org (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.
Mirrored (Score:5, Informative)
I just spoke with him on the phone, too; cool guy. I don't think he was expecting anyone to actually call him
Off topic: DLL Hell (Score:3, Informative)
http://www.sysinternals.com/ntw2k/freeware/procex
It'll tell all the processes associated with a running program.
http://www.sysinternals.com/ntw2k/freeware/listdl
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:From TFA (Score:5, Informative)
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 (Score:5, Informative)
There is nothing in the article about being homo.
The real article.
Re:.so hell (Score:3, Informative)
Regards,
Steve
unix' learning curve is vertical (Score:2, Informative)
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.
While you're waiting for it to be unslashdotted (Score:5, Informative)
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.
Re:.so hell (Score:1, Informative)
Re:.so hell NOT NO MORE FOR ME! (Score:4, Informative)
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.
Re:.so hell (Score:4, Informative)
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.
Re:.so hell NOT NO MORE FOR ME! (Score:5, Informative)
* 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.
Re:.so hell (Score:4, Informative)
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
Re:Package maintenance (Score:4, Informative)
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 [autopackage.org]. 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?
Re:.so hell NOT NO MORE FOR ME! (Score:2, Informative)
1) Most of the filesystems under the bulk of linux distro already are lsb 2.x or really close to be that. Witch is why ".so hell" is for the most part gone. That standard say were file are and how they are laid out.
2) Unless it has changed proper setup of a library at least under redhat & debian they are in the basic format.
libwrap.so.0 -> libwrap.so.0.7.6
libwrap.so.0.7.6
so if you have something that is depend on libwrap.so.0.7.6 and something that need libwrap.so.0.7.7 the you can have both installed and just point libwrap.so.0 to
Problem is most software / disto don't link direct to
I haven't had ".so hell" since I tried to upgrade redhat 5.1 to 5.2 by installing just the RPM's
Installation of Debian (Score:3, Informative)
I strongly recommend installing straight to testing ('sarge') using the new Debian-Installer [debian.org] 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)
Re:While you're waiting for it to be unslashdotted (Score:3, Informative)
Available from Gutenburg here [gutenberg.net].
Re:.so hell NOT NO MORE FOR ME! (Score:2, Informative)
Go take a coffee, and your system is upgraded from sources. Additional customizations (such as alternative dependencies, compile flags per-application etc.) can be made by editing
A reply from the author (Score:3, Informative)
Installing programs, and the mess that it makes (Score:2, Informative)
In the linux/*nix world, aptget and rpm can remove an installed program, but sometimes I have to install a program that's either not available in a package, or the version in the package has to many dependencies. So I resort to the
What I want most of all, is a way to monitor what happens during the make install. I want it to keep copies of old versions before they are over written, I want a full log of every file installed, and I want a quick way to un-install it. I would be one of the last people on this earth to know how this might be programed, but one thought would be to make a version of bash that can monitor the activities of the programs it spawns.
Maybe this exists? Anyone want to start a SourceForge project?
Re:Installing programs, and the mess that it makes (Score:1, Informative)
http://asic-linux.com.mx/~izto/che
It will monitor the make install, build a redhat, debian, or slackware package, and install the package.
Re:.so hell (Score:3, Informative)
The XP way is easy and opaque, the Linux ways is complex but you know what happens. The Linux crowd apparently prefers that option.
It is however trivial to stick a front end on top that does what that XP gadget does. Mandrake has such a tool in 10.0, I think it was there in 9.x too, and other distributions probably have it too.
However it is a delicate choice to make. Letting the user fiddle with network settings that have huge implications on the way the network function and the security is handled without really knowing is going on...
Re:binary compatibility (Score:2, Informative)
Wrong. Linux upholds binary compatibility for userspace applications across time. (Watch what he does when someone proposes to remove obselete syscalls... those things stick around FOREVER, in the name of "Don't break userspace")
What Linus doesn't support is compatibility for binary kernel modules.
Re:.so hell (Score:3, Informative)
It should be linked against lib.so.1, or lib.so.1.0.0.3, or whatever. Most likely it should be linked against the major version.
Usually when libraries make major changes that break compatibility packages are created of both versions.
Re:.so hell (Score:3, Informative)
Amen. And once you get any path issues worked out there are often deeper problems. I just spent the morning compiling GNU common lisp under solaris so I could compile maxima to work out some rather tedious equations without making any arithmetic errors on the coefficients. After pulling out most of my hair I found that newer GCC versions on solaris have revealed a bug in gcl and I found a patch to gcl that solved the problem. (My undying gratitude goes to the GCL people for fixing this quickly.) This sort of thing almost always happens to me when compiling any large free software under Solaris.
It may not be fair blaming Sun. I know I bring some of this trouble on myself by having tools that are half GNU/half Solaris. But a lot of software requires the GNU tools to compile. And since Sun doesn't by default bundle a C compiler with Solaris there is no standard Sun platform for people to write free software for. Everyone has a mix of Sun and GNU and when compiling you always have to worry about which you are using. They may have made themselves some money selling compiler licenses, but by fragmenting the solaris "standard" for compilation they seriously undermined the viability of Solaris for scientific workstation use. Any Linux distribution is a pleasure to work with by comparison. Presumably Sun only cares about selling servers.
My all time most annoying experience was with a patch cluster installation script, downloaded from Sun's own website, that wouldn't run with Sun's own version of awk (not a bug exactly; a limit on the number of records in a line that was exceeded by the size of the patch cluster). Gawk, of course, worked just fine.
OK. Having ranted, I now feel better.
Few remarks... (Score:2, Informative)
Like rm -rf *?
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.
He was very naive, then. I wouldn't say that one can get around without the command prompt at all or with minimal exposure to it even now (except if you have , say nothing about 1993.
I have had very little difficulty with any of my installs: keyboard
I always bitch at X11 for forcing me to count keys on my keyboard: do I 104, 105 or 106 keys? Isn't there a way for the X server to figure it out for himself?
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.
Sure. I remember installing sound card drivers for CMI 8380 in Windows 95. It seemed that the order in which I installed them and other drivers mattered, whether the damn thing worked or not.
power management. Apparently this is not compiled into the Linux kernel by default, which means you have to recompile it yourself
Don't know what distributions he used, but mine has it compiled in default kernel.
By default, Linux usually opens programs with a single click
The usual confusion: KDE does it (as a default), not Linux. GNOME uses double click by default (in nautilus).
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.
Some strange case of "ark" misconfiguration. I can uncompress files with a mouse click. But still prefer to do it in the console... I guess it just depends on the personal habits.