Skip to main content

Ralsina.Me — Roberto Alsina's website

Responding to random blog posts. Today: 2009: software installation in GNU/Linux is still broken -- and a path to fixing it

While ran­dom­ly click­ing to­day I saw this ar­ti­cle with the fun ti­tle of "2009: soft­ware in­stal­la­tion in GNU/Lin­ux is still bro­ken -- and a path to fix­ing it" by Tony Mo­bi­ly.

As I don't have an ac­count at FSM and don't in­tend to open one to­day, I will post a re­sponse here, where noone will ev­er no­tice it. Be­cause that's how self­-­con­fi­dent I am. I warn you, this re­sponse is full of proof-by-asser­tion and in­valid gen­er­al­iza­tion­s, but hey, it's opin­ion.

It starts with an in­ter­est­ing claim:

And yet, soft­ware in­stal­la­tion in GNU/Lin­ux is bro­ken. No, not bro­ken… it’s ter­ri­bly bro­ken. Why is that, and what can be done to fix it?

I in­tend to show how there is one lit­tle prob­lem with that state­men­t: re­al­i­ty. As in "what's the most suc­cess­ful soft­ware de­liv­ery plat­form for 'nor­mal' users in 2009, and why that mat­ters here" re­al­i­ty (hin­t: it's not win­dows, it's noth­ing on a Mac).

I mean the iphone, and its App Store. And what he is propos­ing is aban­don­ing some­thing that works a lot like it, and go back to the cave-age "down­load this from the ap­p's site" mod­el win­dows us­es.

He de­scribes the usu­al in­stal­la­tion pro­ce­dure, be it ap­t, yum or pac­man, al­most all dis­tros do the same thing nowa­days, then starts de­scrib­ing the prob­lem­s.

  • Users need to have root ac­cess in or­der to in­­stall a piece of soft­­ware; no per-us­er in­­stal­la­­tion is al­lowed

This would have been a prob­lem in the old days of shared com­put­er­s. Nowa­days, you are root, or (in some cas­es) root's mom. All mod­ern dis­tros use su­do so you don't need root ac­cess, you just use your own pass­word (or no pass­word at al­l).

So, this is a non-is­sue.

  • It’s very tricky to in­­stall sev­er­al ver­­sions of the same piece of soft­­ware. Just think of the poor graph­ic de­sign­er who needs to in­­stall sev­er­al ver­­sions of Opera and Fire­­fox; Users are stuck with the piece of soft­­ware in­­stalled sys­tem-wide;

How do you in­stall iFart 1.0 and 2.0 in an iphone? Can you? Spe­cial users (like graph­ics de­sign­er­s) should be pro­vid­ed by spe­cial so­lu­tion­s, like por­ta­ble fire­fox. Think there's a need for it? Go ahead, it's maybe one day of work.

  • The soft­­ware needs to be down­load­­ed from the of­­fi­­cial re­pos­i­­to­ries. Well, it does­n’t need to, but an av­er­age us­er wants to stay well away from un­of­­fi­­cial re­pos­i­­to­ries for tech­ni­­cal rea­­son­s;

The iphone soft­ware needs to be down­load­ed from the app store. That has not hurt any­one (other than app de­vel­op­er­s, I mean)

  • In some cas­es (e­spe­­cial­­ly when the us­er adds re­pos­i­­to­ries or in­­stalls pack­­ages di­rec­t­­ly), the de­pen­­den­­cy-check­­ing mech­a­nism of­ten fails and users end up with cir­cu­lar de­pen­­den­­cies. They are nasty;

I have not seen a cir­cu­lar de­pen­den­cy since 2003. But hey, maybe they do ex­ist. In that case, don't do that.

  • A piece of soft­­ware is bound to a spe­­cif­ic dis­­tri­bu­­tion, and — what’s worse — to a spe­­cif­ic ver­­sion of that dis­­tri­bu­­tion too. It’s not triv­ial to in­­stall Open­of­fice 3.1 on Ubun­­tu 8.10. You can ar­gue that you can in­­stall the bunch of .deb pack­­ages from OpenOf­­fice’s web site. Tell that to your grand­­moth­­er or your av­er­age in­­ex­pe­ri­enced com­put­er us­er.

Some iphone apps will not work with­out the 3.0 firmware. So­lu­tion? Up­grade your firmware. How's that dif­fer­ent in Lin­ux?

  • It’s not triv­ial to “give” a pro­­gram to a friend. To the end user, giv­ing a pro­­gram to a friend should be as sim­­ple as drag­ging an icon on­­to a mem­o­ry stick; in­­stead, files are scat­tered all over the sys­tem.

It'­sev­en sim­pler than that: here, let me give you rst2pdf for ubun­tu: "Tony, in­stall rst2pdf, it's in 'u­ni­verse'". I don't even need to give you a flop­py disk or what­ev­er kids use these days.

Oh, and "how do you give some­one an iphone ap­p?"

Then, he pro­pos­es so­lu­tion­s, which I think are worse than the sta­tus quo:

  • Users should be able to in­­stall soft­­ware even with­­out be­ing root

Users are root, or root's mom. This is not a prob­lem.

  • Users should be able to in­­stall dif­fer­­ent ver­­sions of the same soft­­ware im­­mense­­ly eas­i­­ly

The on­ly way to do this is to make ev­ery­thing stat­ic or freeze the sys­tems li­braries.

Do this for "portable" ver­sions of spe­cif­ic apps if you wan­t. Don't make the sys­tem suck, please.

  • Users should be able to run ei­ther their own ver­­sion of the soft­­ware, or the one in­­stalled on the sys­tem (if any)

Fine by me. OTO­H, how do you do that on an iphone? You don't. Please, stop di­verg­ing from what is work­ing in 2009.

  • It should be pos­si­ble to down­load and in­­stall soft­­ware even though it does­n’t come from an of­­fi­­cial re­pos­i­­to­ry

Again, the iphone does­n't, and noone cares. If you care, you are not the nor­mal us­er you claim to ad­vo­cate.

  • Soft­­ware just needs to work — un­changed — even if it’s a bit old and it’s run on a new­er dis­­tri­bu­­tion

Yes, I want Quick Shot for iphones with 3.0 firmware!. Again, al­most noone cares, ex­cept app de­vel­op­er­s.

You are act­ing like a Lin­ux user, dude!

  • It should be pos­si­ble to “give” a piece of soft­­ware to a friend by sim­­ply drag­ging an icon on­­to a mem­o­ry stick

Just tell the guy the name of the app al­ready!

All this is true with Ap­ple’s OS X. They got soft­ware in­stal­la­tion just right — al­though a few pro­gram­s, late­ly, seem to come with an ug­ly in­stal­la­tion process.

Noone choos­es a mac for this. They choose it be­cause it's pret­ty, or be­cause they are told they are bet­ter, or what­ev­er, but any­one ac­tu­al­ly say­ing "hey, on a mac I can give you Of­fice by shar­ing this 800MB dmg!"? Not on­ly noone does it, it's freak­ing il­le­gal.

Be­sides, you give the dmg to your friend, and 92% of the time, your friend has win­dows or Lin­ux and can't use it. So your chance of suc­cess is about 8%.

Imag­ine if it on­ly worked if your friend's com­put­er was an Ac­er? There you would have a 10.5% chance! (see here) Noone would say that's good!

No, sharin apps like that is not the prob­lem.

Please, dear lin­ux dis­tro de­vel­op­er­s, look around you, and see what works in 2009.

Amaz­ing­ly, what works looks an aw­ful lot like what we have been en­joy­ing since 1998 or what­ev­er, so let's en­joy it and make it bet­ter, in­stead of try­ing to be­come like a mac, or like win­dows, old style plat­forms in the age of the smart­phone and the net­book.

UP­DATE: you can check more com­ments about this sto­ry in red­dit, lx­er and OS­News.

iggykoopa / 2009-06-23 20:07:

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.

Roberto Alsina / 2009-06-23 20:32:

Well, you can always package for LSB, I suppose :-)

y0p / 2009-06-23 21:13:

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.

James M / 2009-06-23 21:26:

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.

Roberto Alsina / 2009-06-23 21:41:

@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"

Karl / 2009-06-23 22:38:

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!

Bodo / 2009-06-23 22:56:

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.

Dave / 2009-06-23 23:15:

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).

Roberto Alsina / 2009-06-23 23:46:

@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*!

Roberto Alsina / 2009-06-23 23:49:

Oh, I forgot, the cubans *obviously* don't have macs, either.

LP Mike / 2009-06-24 04:12:

>It should be possible to download and install software even though it doesn’t come from an official repository

GetDEB.net anyone?

Ravi / 2009-06-24 05:42:

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.

Guest / 2009-06-24 05:50:

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.

Tsue Desu / 2009-06-24 09:03:

@ 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!

Roberto Alsina / 2009-06-24 12:17:

@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.

Guest / 2009-06-24 18:22:

@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.

Roberto Alsina / 2009-06-24 19:14:

@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.


Contents © 2000-2020 Roberto Alsina