Worst Linux Annoyances?
greenrd writes "Ever spent hours trying (and failing) to get a printer driver to work on Linux? Struggled to configure something ever-so-slightly out-of-the-ordinary? What have been your biggest annoyances when using Linux? Three O'Reilly authors are compiling a book on Linux annoyances - and their suggested solutions - and they've started a mailing list here. I can't help but think, though, that such a book will be dated quite quickly. Sure, some problems do languish unfixed for years - but equally, I suspect many of the problems will be fixed before, or soon after, the book's publication date. Still, increased visibility might motivate developers to create fixes or workarounds for some of the problems, so maybe this is an ideal opportunity to get your pet peeve finally addressed!"
"Where's the Start button????"
What have been your biggest annoyances when using Linux?
Easy - you guys.
By far, hunting down layer after layer of dependency while trying to install software, only to meet conflicts is my biggest problem.
I am running RH8, and an somewhat of a linux newbie, but i have speant hours trying to get the right versions of software installed, often with two four levels of dependency, (ie Software i want needs x, which needs y, which needs z, which needs a...). I recently installed apt, which made it a bit easier for software it indexes.
Windows software downloads can be big and bloated with DLLs but they generally work out of the box.
paul reinheimer
Not being able to unmount a removable storage device (CD, my digital camera, whatever) because some process had the bright idea of keeping an open file on it, or hanging around with it as its cwd. Nautilus used to be especially bad in this regard.
S .... C ... O
Now who can beat that?
Ñ'
The most annoying thing about Linux is that people compare it to Windows and point out the differences as "annoying".
Different can be better, but yes, there may be a learning curve... and that can be annoying for some.
Cripes...
If you ignore the other uses of a tool, does that make the tool less useful, or you less useful?
Anyhting having to do with USB or Firewire support
I can't help but think, though, that such a book will be dated quite quickly.
If I wrote the book, that'd be exactely what I want. If the book's outdated, it means it has brought all those problems to the attention, and that proper solutions were made. What more can you wish?
this sig has intentionally been left blank
Isn't something from the OS itself, but the "1337" attitude from the users. "Use a different distro!", "RTFM!", "l4m3r!"
I gave up on Linux (and went back to BeOS) simply because the attitude of the Linux users I ran across was intollerable. You won't find that with BeOS users.
(And I'm willing to bet money this gets modded as flamebait, but it's the painful truth)
So rise up, all ye lost ones, as one, we'll claw the clouds.
Why cant everyone pick a fricking filesystem layout and KEEP IT FRICKING THAT WAY?
Redhat thinks that apache and KDE's developers are idiots so they move the default install, Mandrake has things in different locations, SuSE,Debian,Slackware.... they all think they know where it is supposed to be.
All it does is piss off the Linux user.
This is one of the biggest problems. Leave where things go ALONE!
Do not look at laser with remaining good eye.
The default font (at least every time I installed X) is always *tiny* on my screen. No matter how hard I tried, when I changed settings, it never seemed to work.
"I turn away with fright and horror from the lamentable evil of functions which do not have derivatives."
is vendor supported drivers.
Printing, video drivers, sound drivers, etc are ALL significantly easier to setup and use under windows. This is reality because windows controls 90%+ of the desktop market.
Until Linux has the ease of use with devices that both windows and macs enjoy, drivers will be my largest annoyance.
BTW I've been using linux since '95 and it has come a very long way, but it has a lot left to be desired.
Configuring X is the worst thing with Linux PERIOD.
.. first post? /m
While accustomed users can get it to work - newbies are often left stranded before they even get to try out Linux. A lot of people really want to try Linux but they never get past the X config.
Just think of the improvements in general usability over the last few years (gnome/kde etc.) and compare that to how XFree86 has been evolving.
This is probably going to trigger comments such as: why dont you contribute then?? - well:
1. Lack of time
2. Are contributions actually welcome? we read a lot of stuff now and again about how the XFree86 crowd are blocking patches, rumours of forking etc. When people are forced to fork just to get excellent patches in theres something wrong.
Just my 2c.. oh and
My top five annoyances with Linux right now are CUPS, CUPS, CUPS, CUPS, and CUPS.
Its features are variously undocumented or vastly overdocumented to the point of utter incomprehensibility. It configuration is totally frickin' opaque. And every day or so it just stops printing anything until I restart both the printer and the server (but only in that order!).
I am baffled that anyone prefers CUPS to the old reliable lpd. It's a nightmarish beast that nearly makes me consider going back to Windows.
--G
Why can't rpm figure out the next arg is a file (not a package with an illegal package name ending in .rpm) and assume the -p flag?
Why can't cdrecord by default create a sane ISO if the request specifies a directory or file which doesn't look like an ISO?
etc.
Sure, let someone override this behaviour if they give the special flag after RTFM, I propose --literal. I am tempted to implement this using a bunch of perl wrappers.
And this isn't an annoyance that's limited to Linux -- I deal with it in Windows from time to time. When I hit eject, I want the damn media NOW. Both Linux and Windows will bitch in their own special way about open files or locked files or stupid processes... it's beyond me why someone can't code up an intelligent solution that will close all read handles, and close all write handles with some message along the lines of "Completing write in /dev/cdrw0, please stand by" (of course this wouldn't apply to regular CD-ROMs).
Anyway, the whole point of this rant is that there should be something more elegant than having to manually kill proc's by PID. I don't think Grandma's gonna ever use Linux if she has to do that kinda stuff.
Seriously, if Windows just went away, all my Linux problems would be solved. Here are some annoyances:
I can't get support from my cable company because most of their customers use Windows.
I can't use some web sites, especially for streaming media, because most of their customers use Windows.
My boss worries about using OpenOffice.org because it may not be compatible with MS Office.
I have to pay more for a laptop because it has Windows preinstalled or the OEM pays MS even if it doesn't.
Then there's the availablity of apps or clients or drivers, compatibility with Windows networks, Winmodems, kids' games.
Geez, it's so bad, someone should think about looking into whether any other OS could even fairly compete! Oh, wait, there's another annoyance:
I have to worry about Linux being made illegal in one way or another, because Gates has bought up all the politicians!
Damn Windows!
"You can't get something for nothing." - my grandfather, on the stock market and Reaganomics.
Ah, I see you've met the people in #Linux on EFNet. :)
"I need help..."
"RTFM you goddamn newbie or go get WinXP."
You have been kicked by Dudrio (Wanker)
Cannot rejoin channel (Address is banned.)
I heard one guy state that "When you're 80% done with a project, you've probably only spent 20% of the time that it takes to complete it with splendor".
I think that Linux is there, it's 80%. Things just don't work out of the box, and they should if we wish to hope to compete with Windows or Mac OS X. Try daisy chaining external firewire drives on RH 9, it just doesn't work. Try changing network profiles smoothly with RH 9/XD 2 - it just does not work. And get your funky i18n characters to display properly in RH 8 and later - it's not as easy as selecting a country during the install process. These are supposedly not rocket science issues, it's finish, it's what makes the difference to the average user, it's the difference between 80% and 100%.
Linux has not really evolved beyond the 80% during the past 3-4 years. Sure, we've gotten GNOME2, KDE3 and so forth, but these still lack the same finish as their predecessors did.
I'm beyond wanting to fiddle with my desktop PC, which is why, after 5 years of using Linux on the desktop, I'm switching from Linux to Mac OS X once the next powerbook update occurs.
Unable to read configuration file '/bigassraid/htdig//conf/14229.conf'
Geocrawler error message.
It annoys me that Linux is inexpensive, because I don't get the satisfaction of bragging to my neighbors about how much I paid for it.
send a $699 check to SCO and come back here to brag about it
It annoys me that I can upgrade Linux without having to purchase state-of-the-art expensive PC hardware, so my hardware is always outdated.
install Winex and star gaming. since Winex sometimes cause a 30% loss in framerate, it'll be a good reason to buy a Radeon 9800 pro
It annoys me that I don't have to reboot frequently, so I never know how fresh the bytes of code are in memory.
linux 2.6 pre1
It annoys me that I can easily solve my Linux problems in the Google groups section, instead of getting to speak with a real live tech support person, who might be a really cute blonde chick.
pay for it (also answers #1) and call redhat's tech support instead.
It annoys me that I don't have a mascot like Clippy the paperclip in the vi text editor.
vigor. www.userfriendly.org for back reference on it. then apt-get install vigor if you have debian.
What ? Me, worry ?
Trying to understand Linux as a "Windows substitute" is a doomed prospect. Their differences aren't just a matter of tradeoffs: they are radically different kinds of system, much as an MP3 player is different from a turntable. If you found two people arguing over whether an MP3 player or a turntable was "better" -- or a turntable user saying that MP3 players were "annoying" due to the lack of an RPM control -- you would of course recognize this as nonsense.
An example of this sort of difference between Linux and Windows is the difference in the handling of drives. Windows uses drive letters; Linux uses mount points in a single filesystem. While there may be advantages to each, they are more a design difference than a set of tradeoffs. Another example is the difference in balance between CLI and GUI. Windows (or, moreso, Macintosh) users who come to Linux looking for that kind of carefully tuned GUI are likely to be disappointed -- and pushing the KDE control panels on them as "almost as good" is inviting their disappointment. There is a difference in design intention between GUI-focused and CLI-focused systems. The new user just has to un-learn old assumptions, just as the turntable user needs not to be looking for an RPM switch if he wants to become familiar with the MP3 player.
Things I would describe as "Linux annoyances" are points which remain difficult, problematic, or simply grating even for the already-familiar Linux user. Many of these will sound entirely foreign to the Linux novice or non-user, since they are matters that only occur to the already-familiar. These are points which seem out of place, or insufficiently regular or predictable, even to the expert.
Some examples of what I mean:
The parent contains an insight that many Linux hackers simply don't get. It's better to have some process generate a thousand I/O errors than to have a computer that is not responsive to user input.
Having to use a command-line utility to track down and kill apps that are accessing a given device is a complete *failure* of the OS to just do what the end-user wants it to do. In the case of a disk eject, the OS needs to forcibly unmount the disk and allow the user to eject, and it should be the responsibility of any programs to gracefully fail, or even better, handle the error, if they really needed to access that disk.
It should never be the user's responsibility to clean up other programs so that the system can perform a task the user requested. When the user makes certain requests of the system, such as those of the "give me my disk" variety, the system should be expected to bend over backwards for the user, not the other way around. Anything less should be considered a severe usability bug.
The foul language used by the parent detracts from his argument, however in this case it can be forgiven due to the extreme annoyance of this bug^H^H^H feature.
The preceding comments reflect the author's personal opinion and are public domain, unless explicitly stated otherwise.
Sure, let someone override this behaviour if they give the special flag after RTFM, I propose --literal. I am tempted to implement this using a bunch of perl wrappers.
I hate to say it, but you're problem is that you RTFM but not all the way.
rpm doesn't require a -p option. If you're installing, just use:
rpm -i packname.rpm
If you're uninstalling use:
rpm -e packname.rpm
Hell, in Nautilus (the program meant for folks that won't RTFM), you can just double-click on the darn things.
Try burn:/// in Nautilus and that should take care of your cd-burner whining.
file-roller will take care of your tar problems too plus give you a nice little GUI.
These all come by default with RH9.
int func(int a);
func((b += 3, b));
Copy and paste doesn't work consistently, and when it does, it often behaves in nonsensical ways.
I feel that world domination will come when the following "Just Works" for every Linux user:
- You can copy text from any application that can supply text into any other text application that can receive text. Many Linux applications can't copy and paste between each other, or if they can at all, you can only do it in one direction.
- You can copy some text from any application, close the window to get it out of the way, because you don't need it anymore, then paste the text into any other application
- You can copy some text in any application, activate the window of any other application, select the text you want to replace, then paste the text you copied first, thereby deleting the second text which you had selected and replacing it.
This last thing I try to do quite a lot to paste a new URL into the URL textbox of a web browser, so I can replace the old URL with the new URL I want to visit. However, in X11, highlighting some text makes it "the selection", so a paste will just paste in the text I'd selected, which was the text I wanted to replace.All of these things have consistently worked flawlessly in every version of Mac OS and Windows I've ever used. Note that my first Mac ran System 5 and my first Windows box ran Windows 3.1. Yes, I am an old man.
I've been using Linux since I first installed Yggdrasil Plug-n-Play and I've never been able to get this to work right.
Consider how frequently office workers in a business need to copy and paste text, and consider that this is my main frustration, even though I am an experienced Linux user. I nearly had my Windows-loving wife talked into trying out Linux, but when I explained this problem to her, she said she wasn't even willing to give Linux a chance.
And yes, I understand one reason this doesn't work in X11 is that the fact that this network-transparent GUI sometimes has to work on X terminals with limited memory, so you can't provide a dedicated memory buffer for a clipboard like on Windows or the Mac. But my friend, the PC I'm typing this on has 512 megabytes of RAM, and frankly I rarely if ever run X over a network, so I don't see this as a valid excuse anymore.
It's enough to make you chew your own foot off.
Request your free CD of my piano music.
I guess what I find annoying isn't the Linux kernel, per se, but rather the maze of infrastructure around it. DON'T Hate me. I love Linux, but confession is cleansing and most of these are things Linux inherited from *NIX/SystemV and the fact that it was put together over a period of decades by thousands of contibutors, so there wasn't a history of system management to learn from yet when it was initially designed.
I also may be overdue for my meds. (Ahem...)
TWO desktop environments with similar capabilities.
Distros that put things in weird places.
The fact that distros have the freedom to put things in weird places.
The fact that 'weird places' means that there are a half-dozen places for binaries to go (/bin, /sbin, /usr/bin, /usr/sbin/, etc...)
Don't even bring up /opt!
"User-friendly" management tools with a learning curve that is almost as steep as that for the service or feature they are managing.
The same goes for script-based management systems.
The fact that these tools are necessary so I can cope with the management idiosynchosies and conventions of two dudes in Argentina that have been sysadmins of a UNIX server farm for 16 years.
The SH/BASH scripting language. (!!!!)
Configuration files based on archaic paradigms like the SH/BASH scripting language.
Software that uses configuration files that served as an experiment in parsing for somebody's undergrad senior project. (Therefore, it has a unique, confusing syntax with zero readability and requires one of them there "management tools" I mentioned earlier.... I'M TALKING TO YOU, SENDMAIL!!!!)
I'm sure I can think up more, but that'll get the discussion started.
"Lawyers are for sucks."
- Doug McKenzie
It will rise much more quickly to the top of a developer's TODO list.
It will be much more appreciated if the user with the problem has thought the thing through, rather than just complaining.
It is basic to the spirit of Open Source, where people contribute .
Selfishness has no value here. Ayn Rand would die of hunger in the Open Source world.
- Inconsistency in the administration tools,
including dropping the linuxconf tool for the less functional controlpanel.
- Failure to include any updates to Netscape.
- Choosing an immature unrealeased beta gcc version for a production release.
- Breaking the NFS client so that acccess times
became 100X slower (way to go guys, great job not testing there!).
- Breaking the install so that an upgrade hosed my Athlon box at home (motivating a quick run to Best Buy to get SuSE, and I've never looked back).
- Numerous Kernel bugs induced during "upgrades" which I need to accept to close security holes. I had 6 months of hell due to a Kernel bug which caused my server to give up the ghost without a cry for help. Sure I blamed it on hardware at first, since I had 1 year of uptime, but then I realized that their updates just didn't cut it, and they finally fixed it this June.
SuSE has some glitches too, in particularThe multiline strings suddenly being illegal in gcc 3.3.x are annoying too. Much code still uses multiline strings. Yes I know about ANSI concatenation, but I'm not talking about my code here, I'm talking about the heaps of OPC (other peoples's code) out there. Many wasted moments were filles cleaning up other people's mess. Oh well, not really a linux issue, but a gcc one, but what the heck.
The Linux VM swaps an awful lot when it really shouldn't. Well, it doesn't suck as much as it used to, It used to be a whole lot worse, but it still sucks. I have quite a bit of memory in my machine. I bought the extra mem just to avoid the godawful paging to disk. Linux somehow still sees fit to page to disk. Yes I could turn off swapping, but I just want to be safe instead of sorry. The OOM killer isn't very nice to your processes when you run out of mem or swap.
Linuxisms in code. Programmers that write very cool software (e.g. KDE) but fall into the GNU libc-extension and Linux-only features traps, and thereby making their code instantly unportable. Linuxisms are the bane of my (and others') existance when porting stuff porportedly written for linux to another OS. Instead of a straightforward recompile, I have to monkey around to beat all the linuxisms out of the code to get it to function well on other systems. Examples include /proc abuse, library/system calls only available to Linux, assuming the env is little-endian, alignment assumptions, filesystem feature assumptions, and wearing 32-bit blinds. Not really a linux system annoyance, but more a Linux-attitude-towards-other-systems and brainfarted programmer annoyance, but hey, we're on a roll here.
Bash-isms. Yes, I know the venerable bourne-again shell is the "default" bourne type shell in Linux. It's actually quite featurefull, and can do a heap more stuff than the normal POSIX bourne shell can do. Linux coders seem to thing *all* systems use bash as their bourne shell and write their supposedly bourne shell scripts with bash extensions. For someone using systems like the BSD's, IRIX and whetever doesn't ave bash as their default shell it's mightily irritating. Also the linux bash shebang cancer is an annoyance. If you absolutely must have bash, use env(1) to find bash, instead of hardcoding it into your shebang. Else, just stay away from those bourne again extensions. Use the korn shell if you must.
GNU's rabidness against man(1). GNU has deemed the info(1) documentation the "standard". info(1) sucks. It's counterintuitive, bloated, and redundant. It has absolutely no advantage over HTML, SGML or even LaTeX docs. And the man(1) system is nice and lean for a quick reference. For some reason, GNU wants to stamp out man(1). Luckily, many linux developers still embrace the man(1) system and still write manual pages (bless their little souls). But to find any useful docs about say gnu autoconf, you have to interface with that monstrosity that is info(1).
That's it for a while. I'll think up some more concrete really linux application related ones and post them to the list if I have time. FOr now, this is just a small list of some tings I find annoying about Linux and GNU.
Some time ago i DLed Slackware 7 (or whatever, im a Linux noob) from the Swedish University Network and installed it. It was not the first time i installed linux so i had some clues on how to get a window manager, sound and the internet connection running. But to my frustration the resolution was always off somehow and everything farked up. SO, i return to my filthy imperialistic pigdog Windows and ICQ my Linux-geek friend. Guess what? Couldnt fix it. After a few weeks in windows, i hear the distro on the SUNet was corrupted and averyone downloading the ISO had problems with X-resolution. The bottomline? Peer-to-peer support is way too hostile in the linux community. Go ahead and tell me i shouldnt run linux if i cant get it running in 10 minutes. I still think the community could use some more happy faces and a friendlier attitude towards noobs like me.
Ok, im gonna duck now and try to keep myself from catching fire.
You cant fight in here, its a war room!
Why is the port syntax in ssh "-p NN" and in scp "-P NN"? I'd be less pissed off if the two programs weren't a) based on each other and b) from the same tarball.
*sigh*
In addition to this the host of lameness in GNOME, for example, the lack of ability to paste text after you've closed the application it's been copied from. They are talking about taking over the desktop and this doesn't work yet? WTF!!!
Other things in my list (mostly gnome):
- no easy menu editing (ie: drag to where you want it)
- nautilus views are neat but you loose the functionality to be able to select of rename files in say, the audio (media) view
- mime type editing sucks. make it easier
Where's the command line?
There is something to what the original poster said.
Many, many existing Linux users have volumes of existing scripts that were written to expect certain behavior from commands.
If you fidget with commands break all of those scripts in hopes of gaining Windows users, you will severly break the working environments of the existing Linux users in ways which may take years to repair. More importantly, most of these are the same people doing most Linux application and driver development.
It's the classic "make it so that even a fool can use it and only a fool..."
You see: you "fix" a whole bunch of silly RTFM problems all over Linux, so that the "obvious" (to a Windows user) behavior occurs. You gain a whole bunch of happy Windows users who don't want to learn about "old fashioned" ways of doing things. But you break a whole bunch of older scripts, methods, and tools in the process. Congratulations, you've just lost a huge portion of the original Linux community (esp. the development community) to *BSD, where Unix is still Unix.
You're back where you started. All the interesting development is now happening on BSD because the active technical community now lives in BSDland. But BSD is still Unix-y and so you're back to whining "Why do I have to RTFM? Why can't you *BSD people make this stuff easy and do things the obvious way? How do you ever expect to get any of us Windows or Linux users?"
The answer is simple. Unix developers want Unix. Windows users considering a switch should come to Unix for Unix, not for a cheaper Windows.
My own $HOME/bin directory contains 214 scripts, some of them very long and not seen by human eyes in years. All of them use piles of shell tools. If Linux breaks them, I'm outta here. I don't have time to rewrite and/or debug all of them from beginning to end in some kind of "It's the New Linux!" audit.
STOP . AMERICA . NOW
That's the trouble. Linux often seems to have two levels of operation: omniscient programmer and absolute moron. While I've always been a big Gnome fan, the latest push is to dumb down the default interface to the point of being suitable mostly for users at the "gee, where do I launch The Internet?" level and requiring hacking xml files to reconfigure things to make it work the way you want it to (because everyone knows that options are confusing, right? we can't give users who can't grok xml the ability to modify the way their programs work in non-trivial ways, they'd be completely overwhelmed!). File-roller is somewhat slow, its interface gets in the way, and it doesn't have enough of a range of abilities to be able to replace learning all the CLI archive commands for anyone but beginning users. Why can't GUIs and command-line commands be at least somewhat targeted to the users who generally know what they're doing but aren't programmers and can't remember all of the command line options for hundreds of programs?
"RTFM. If you don't like it go use windows."
No! I told him to use graphical desktop apps. Nowhere did I even mentioned Windows.
Graphical archiving apps like File Roller and KArchive detect the file format automatically. Those are the apps you should be using, not commandline apps.
That's against the point of such command-line programs.
Many UNIX command-line tools are meant to do one job, and do it well. There's no reason for tar to know about compression formats -- what about UU-encoded stuff? Should tar have to know about ARJ, LHA, ZIP, gzip, various encoding formats (BASE64, etc.), and other issues?
This isn't an RTFM thing -- you don't really want to be using tar or rpm or cdrecord in the first place, because these are programs which are meant to do things very literally, without room for misinterpretation.
Strict behavior is better than undefined behavior.
The ideal solution is NOT for GNU to add all sorts of heuristics into tar to figure out what you want it to do -- that addresses the wrong problem. The ideal solution is to have front-end programs which invoke tar, gunzip, rpm, cdrecord, and such. Perhaps a "suggest" script could invoke "file" to determine what the file contains, and suggest things to do with the file based upon its contents.
Simplicity is key to having bug-free programs. Let front-ends handle dealing with people who don't want to learn how to get a specific program to do a specific task for which it was designed.
Besides, what is the best default action for tar? To uncompress an archive? To list the contents? To add files to it? What if the user specifies two tar files on the command line? Does tar add the second to the first? The first to the second? Does it list them both? Does it create a third with the merged contents of the two on standard output?
It sounds to me like tar should have command-line options to let the user tell it EXACTLY what to do, so the user isn't surprised by something unexpected happening.
Oh, wait, it already does.
Somebody get that guy an ambulance!
The numerous folks who insist that Linux is the cure-all and be-all for all computer woes.
You only call that sane behavior because that's the behavior you're used to.
Unix commandline apps assume that you know what you're doing, and do *exactly* what you tell them to do. This behavior is very useful in scripts or graphical frontends, because you know exactly what they will do. And this is the correct behavior because these apps are meant to target users who know exactly what they're doing.
The less technical people should use graphical desktop apps. They make sure (more or less) that the user won't make big mistakes, like Windows. Those users wouldn't use commandline apps in the first place. So why modify commandline apps to target them if they won't use the apps anyway? It's not worth losing the scripting flexibility.
Don't use rm, hit the Delete key in Konqueror or Nautilus. Don't use tar, use File Roller or KArchive. They're easier to use *and* won't let you make stupid mistakes.
"My personal pet peeve? why is it that with >75% of apps that I download as source have either configure scripts that simply don't work, or include code that doesn't compile."
Then you must be running some weird or outdated distro. 90% of all source code here compiles and installs out-of-the-box.