Responding to random blog posts. Today: 2009: software installation in GNU/Linux is still broken -- and a path to fixing it
While randomly clicking today I saw this article with the fun title of "2009: software installation in GNU/Linux is still broken -- and a path to fixing it" by Tony Mobily.
As I don't have an account at FSM and don't intend to open one today, I will post a response here, where noone will ever notice it. Because that's how self-confident I am. I warn you, this response is full of proof-by-assertion and invalid generalizations, but hey, it's opinion.
It starts with an interesting claim:
And yet, software installation in GNU/Linux is broken. No, not broken… it’s terribly broken. Why is that, and what can be done to fix it?
I intend to show how there is one little problem with that statement: reality. As in "what's the most successful software delivery platform for 'normal' users in 2009, and why that matters here" reality (hint: it's not windows, it's nothing on a Mac).
I mean the iphone, and its App Store. And what he is proposing is abandoning something that works a lot like it, and go back to the cave-age "download this from the app's site" model windows uses.
He describes the usual installation procedure, be it apt, yum or pacman, almost all distros do the same thing nowadays, then starts describing the problems.
Users need to have root access in order to install a piece of software; no per-user installation is allowed
This would have been a problem in the old days of shared computers. Nowadays, you are root, or (in some cases) root's mom. All modern distros use sudo so you don't need root access, you just use your own password (or no password at all).
So, this is a non-issue.
It’s very tricky to install several versions of the same piece of software. Just think of the poor graphic designer who needs to install several versions of Opera and Firefox; Users are stuck with the piece of software installed system-wide;
How do you install iFart 1.0 and 2.0 in an iphone? Can you? Special users (like graphics designers) should be provided by special solutions, like portable firefox. Think there's a need for it? Go ahead, it's maybe one day of work.
The software needs to be downloaded from the official repositories. Well, it doesn’t need to, but an average user wants to stay well away from unofficial repositories for technical reasons;
The iphone software needs to be downloaded from the app store. That has not hurt anyone (other than app developers, I mean)
In some cases (especially when the user adds repositories or installs packages directly), the dependency-checking mechanism often fails and users end up with circular dependencies. They are nasty;
I have not seen a circular dependency since 2003. But hey, maybe they do exist. In that case, don't do that.
A piece of software is bound to a specific distribution, and — what’s worse — to a specific version of that distribution too. It’s not trivial to install Openoffice 3.1 on Ubuntu 8.10. You can argue that you can install the bunch of .deb packages from OpenOffice’s web site. Tell that to your grandmother or your average inexperienced computer user.
Some iphone apps will not work without the 3.0 firmware. Solution? Upgrade your firmware. How's that different in Linux?
It’s not trivial to “give” a program to a friend. To the end user, giving a program to a friend should be as simple as dragging an icon onto a memory stick; instead, files are scattered all over the system.
It'seven simpler than that: here, let me give you rst2pdf for ubuntu: "Tony, install rst2pdf, it's in 'universe'". I don't even need to give you a floppy disk or whatever kids use these days.
Oh, and "how do you give someone an iphone app?"
Then, he proposes solutions, which I think are worse than the status quo:
Users should be able to install software even without being root
Users are root, or root's mom. This is not a problem.
Users should be able to install different versions of the same software immensely easily
The only way to do this is to make everything static or freeze the systems libraries.
Do this for "portable" versions of specific apps if you want. Don't make the system suck, please.
Users should be able to run either their own version of the software, or the one installed on the system (if any)
Fine by me. OTOH, how do you do that on an iphone? You don't. Please, stop diverging from what is working in 2009.
It should be possible to download and install software even though it doesn’t come from an official repository
Again, the iphone doesn't, and noone cares. If you care, you are not the normal user you claim to advocate.
Software just needs to work — unchanged — even if it’s a bit old and it’s run on a newer distribution
Yes, I want Quick Shot for iphones with 3.0 firmware!. Again, almost noone cares, except app developers.
You are acting like a Linux user, dude!
It should be possible to “give” a piece of software to a friend by simply dragging an icon onto a memory stick
Just tell the guy the name of the app already!
All this is true with Apple’s OS X. They got software installation just right — although a few programs, lately, seem to come with an ugly installation process.
Noone chooses a mac for this. They choose it because it's pretty, or because they are told they are better, or whatever, but anyone actually saying "hey, on a mac I can give you Office by sharing this 800MB dmg!"? Not only noone does it, it's freaking illegal.
Besides, you give the dmg to your friend, and 92% of the time, your friend has windows or Linux and can't use it. So your chance of success is about 8%.
Imagine if it only worked if your friend's computer was an Acer? There you would have a 10.5% chance! (see here) Noone would say that's good!
No, sharin apps like that is not the problem.
Please, dear linux distro developers, look around you, and see what works in 2009.
Amazingly, what works looks an awful lot like what we have been enjoying since 1998 or whatever, so let's enjoy it and make it better, instead of trying to become like a mac, or like windows, old style platforms in the age of the smartphone and the netbook.
UPDATE: you can check more comments about this story in reddit, lxer and OSNews.
I agree with most of your points, only thing thing I would change is having standard directories and packages for linux so that a package will work for most distros. Thats probably not gonna happen though.
Well, you can always package for LSB, I suppose :-)
I am so tired of all those articles saying "Is Linux ready for the desktop", "Linux is not ready for the Desktop" etc
Linux IS ready for the desktop but users ARE dumbass... that's the fact.
When I first started using linux 8 yrs ago, my inclination was to install software by downloading *.rpms. I quickly figured out how to manage repositories. It's a Windows mentality that installing software requires downloading a file, launching it, accepting an EULA, and clicking 'next' until the installer is finished. I can't look back and understand why I initially preferred that system because it seems so archaic, like a relic of the pre-internet age where files had to be installed from floppies. Repository-based application management, which Apple's app store is an example of, is an easier and more secure method of managing software. I predicted that Microsoft would eventually develop their own app store.
@yOp: I think the right position in "linux and the desktop" is something between "I don't give a crap" and "it's good enough for *my* desktop"
Heh, a guy at work uses Photoshop on the Mac. His version doesn't work on Mac OS 10.5 so he has to dual boot with OS 10.4. So much for the idea that everything "just works" on a Mac.
Packaging non-repo applications into a single directory is quite easy on Linux. Just link with -rpath and include the libraries needed!
I kinda agree with you..but you have to admit-the point wich he says about giving software to a friend is really wrong right now.
If I want to give a software to a friend wich has internet,yes,it's okay
But what if that friend lives in an area where there is no internet access? (please,stop thinking the world is USA and Canada)
For example,in Romania,Moldavia,Ukraine,etc. there are villages in wich there isn't even Cable TV - what can I say about Internet? Think about that too.
At this point,windows got over us-you can just go with the .exe and install it and that's that.In linux,it's more complicated - .debs that have dependencies,and those dependencies have other dependencies,etc etc,you get the idea.
Great post. I agree with you. I love using Ubuntu now and I would be miserable going back to the way I installed software on Windows. It sucked (stated in the past tense because I no longer use Windows).
@Bodo: I am not in the US, or Europe.
In fact, I have friends in Cuba, where access to FTP or HTTP is restrictd by the government.
How do they get their software? They ask for it by mail, then we send it to them in hundreds of tiny files.
However, I don't think just because some have special needs everyone should share their inconveniences.
So by all means package portable apps and mail them or send them via carrier pigeon!
One thing doesn't hurt the other *at all*!
Oh, I forgot, the cubans *obviously* don't have macs, either.
>It should be possible to download and install software even though it doesnt come from an official repository
GetDEB.net anyone?
It's really disingenuous to point to the iPhone app store as the ideal distribution model. Not only does it have well-documented flaws with respect to apps which Apple refuses to accept, but it's also very different from the Linux model which you're arguing for.
Root access *is* important. It's incredibly glib to just assume that everybody has root access because it's the common case. The fact is, though, that Linux supports this better than most OSes, because you can compile programs from source and install them to arbitrary paths. Linux distros, on the other hand, don't support this (except for Gentoo derivatives). This is a problem with current distros which can and probably should be looked at.
Installing multiple versions of a piece of software isn't just a "special solution", it's actually required for many libraries where programs require specific versions (autotools being one egregious example), and those programs are specifically designed for it. Distros *could* support this, by allowing alternate installation paths for different versions, but this would be tricky from a package manager perspective, so nobody has yet. For a nontrivial application like a web browser, it's a lot more than one day work to do it properly. :p
It is already really easy to give a program to a friend, though, since you can just give them whatever file (rpm, deb, source tarball) you installed it from in the first place. Not sure what that guy was getting at there. XD
Finally, I'm not really sure why you're arguing so strongly against becoming more "mac-like", when your whole argument revolves around the iPhone.
I was directed to your article after being directed to the original source article.
I've heard a lot of people talking about the "other guy" as being a "mac fanboy", or an "idiot".
I'm going to be honest, and I don't mean any disrespect, but I think your response misses the boat. Completely.
First of all, comparing a home computer to an iPhone doesn't have any real value. They are two completely different devices, with completely different practical application, needs, and software models.
Second, there may have been a lot of holes in his proposed solution, but he in no way said "This is how it needs to be done". He simply offered suggestions off the top of his head. A more productive response would have been to offer better alternatives to his solutions that still address the problem.
Third, is recognizing that there is a problem, which I don't believe you do. The bottom line, is that the current method of program distribution walks on a tightrope, and is very very easy to break your system if you don't grab and use exactly what is in the package manager on your system.
Fourth, the user is not root. Bottom line. Yes, there may only be a single user at a home computer, but there may be 4. If someone logged in as root wants to install OpenOffice systemwide for everyone to use, great.
If somebody's 12 year old brother then wants to install a game, also great. Excpet when it's a game that needs a different version of a library that is installed systemwide. The package manager should then put that version in the game folder... no root access needed.
That example was of course, beyond hypothetical, but I'm just saying, the user is not root.
I see your points, and where you're coming from, but I think your points were very poorly made, and backed up.
Thanks for the opportunity to leave my 2 cents.
@ Daniel...
erm.. The iphone is a portable computer.. it uses a managed, centralised repository (albeit one you pay to access) It does not support multiple versions of the same thing on your device. The system is what we're looking at, not the symantecs.
I'd like to know how you install multiple versions of anything on a mac. The dmg does everything. Whats worse, it isnt that portable, you actually need the .dmg to give to someone else.
And yes, there is a way to dl the repository, and put it on DVD and give said DVD to your friend... Then, not only do you give him the APP he wants from you.. but a whole host of MORE stuff.
And it can be trivial to install multiple versions on a linux machine, but, why would you? and honestly, this is hard to do on any system. Because, programs to not only affect their own binaries, they affect others too. That said... you can usually run older programs on newer libs.
I agree with the post, Users mustnt be root, and shouldnt JUST install things, it would create the WINDOWS ideal bot distribution system in Linux. Login, or get the root personage to login when you want to install. Sudo, but use a password.
zypper in WORKS!!!
Nuff said!
@Daniel Costalis: just to be clear: I didn't call Tony Mobily any of those things, I just think he is wrong.
I am not comparing Linux to the ophone perse, but their software distribution strategies, to see what works in 2009.
It turns out that every user *loves* the App Store. Blackberry, Palm, Nokia and Windows are going to implement the same thing.
And here we are, already proud owners of wheels, and this article suggests reinventing the sled.
@Tsue Desu
The iPhone may be considerably more feature rich than your standard phone, but the iPhone is not a portable computer.
Even if we do decide to not split hairs about it, and agree that it IS, comparing the iPhone to a desktop computer isn't a fair comparison.
A DMG is a disc image file, similar to an ISO. Installing another version of something is as simple as moving the contents of the DMG to a different location.
Having multiple versions of an application has a lot of value, specifically for somebody that would like to try a new version of a product without having to destroy their old version. An example of this would be a newer version of video editing software that may have heavy system requirements, or multiple versions of Firefox for testing web applications.
@Robert Alsina
iPhone users may in fact love the app store. If they didn't, however, they'd be SOL, because that is their ONLY option. However, we're talking about ONE device and ONE operating system, not numerous OS choices and numerous different possibilities for hardware and software configuration. It's simply comparing Apple and oranges.
@Daniel Costalis: it sure is a portable computer. It even runs OS X (kinda).
About the app store:
They love it. It's successful. Everyone is going in that direction now.
Arguing that if they didn't love it it woud suck is pointless because they love it.