Software installation on Linux: Today, it sucks (part 1)
As anyone who follows my blog knows, I’m fond of linking to other sites with brief little quotes that either get me thinking or reinforce points I’m trying to make elsewhere. (Credit where credit is due: Dave Winer and Doc Searls both do this very effectively, and I’m just shamelessly copying them, down to the quoting style they typically use.)
One of the quotes I’ve had queued up for a long time is this one from Jon Udell:
I have a confession to make. Sometimes, when I’m trying out an unfamiliar open source component, I cheat. Even if the software I’m working on will deploy to Linux, I’ll sometimes develop it on Windows first. Why? Because on Windows, an open source component is likely to come with an installer that just works.
He’s right. Unless an application is included with your Linux distribution of choice, installing that application on Linux is a nightmare compared to Windows.
Here’s an example. To install Sun’s Java Studio Creator on Windows, I just click on the .exe on Sun’s web site, which downloads the file and places it on my desktop. I double click the .exe (after, of course, checking it for viruses) and am up and running in a few minutes.
In contrast, on Linux, I click on the .bin, which downloads the file and.. up pops a text editor showing me a /bin/sh script.
Nice. Fortunately, I know what that is, so I save the script to a file on my desktop. I double click the file, and.. up pops a dialog box telling me the file isn’t executable.
Nice. Fortunately, I know what that means, so I drop into a shell and run chmod +x ./creator-2_1-linux-ml.bin. I double click the file again, and there’s a nice graphical installer now.
Finally, it looks like everything is going my way. Halfway through, though, the installation fails, telling me I need to install the RPMs for compat-libstdc++ and compat-libstdc++-dev.
Nice. Assuming I even know what an “RPM” is, I then realize: I’m running Debian, and Debian doesn’t use RPM. Maybe I know about alien, but even if I do, where do I go about getting the compat-libstdc++ and compat-libstdc++-dev RPMs?
At this point, I’ll probably hit Google—that is, if I haven’t already thrown up my hands in disgust and gone back to Windows. After a bit of Googling, I find this page, which tells me on Debian what I really need is libstdc++2.10-glibc2.2 and libstdc++2.10-dev. Of course! I should have known that. (Note: I’m being sarcastic.)
After installing those two packages, I restart the installer (which, thankfully, knows how to deal with the fact that it’s already half installed, but that won’t always be true). The installation finishes this time, and the installer kindly offers to start the program for me. However, after poking around a bit and exiting back to the desktop, I don’t see a menu entry or a desktop icon, so I’m not sure how I’m going to find it again (and I hope I don’t have to explain why cd’ing to ~/sun/Creator2_1/bin is not an answer).
Anyone who has ever installed software on Linux is familiar with this song and dance. If it’s in your distro of choice, you’re only an apt-get or a yum install away from running it. But if not, you’d better know what you’re doing, have a lot of patience, and understand how to construct effective Google search terms. (And, no, moving everything into the distribution is not a very good option. Remember that one of the key tenets of open source is decentralization, so if the only solution is to centralize everything, there’s something fundamentally wrong with this picture.)
Oh, well. At least I didn’t have to check for viruses!
Fortunately, some of the problems I experienced are bugs. The above was done on a pre-release Debian etch system over the summer, so it’s likely the problems have been fixed. I repeated the experiment on an Ubuntu edgy system, and it didn’t open the text editor, nor did it complain about an incompatible C++ environment. However, there were still no menu entries or desktop icons, and there was an additional problem too in that when I double clicked the file, it opened it in CrossOver Office, which I also have installed. Regardless, even if it works better on some distros than others, there’s still no usable solution until ISVs and end users alike can depend on things consistently working regardless of the distro being used.
Again, fortunately, we have solutions to parts of the problem already. The LSB abstracts away the differences between the runtime environments of the various distros, so the Java Studio Creator installer could have simply said “you must install the LSB environment” rather than trying to deal with the hundreds of little variations in both the environments and the package namespaces that provide them (e.g., compat-libstdc++ vs. libstdc++2.10-glibc2.2). Better yet, on distros that provide the LSB environment in their default configuration, the installer doesn’t have to do anything. And Project Portland promises to give us a consistent interface for creating menu entries, desktop icons and such things.
However, far too few applications take advantage of the LSB today (though that’s changing), and Project Portland isn’t in any of the distros yet (though we’re looking at bundling its primary deliverable, xdg-utils, with the LSB 3.2 SDK to work around that). Finally, even though the LSB provides ISVs with a consistent way to create an LSB compliant executable, there’s no consistent way to deliver an LSB compliant application that’s easy to install and that integrates well with the distribution’s package system. Yes, the LSB includes RPM today, but for a variety of reasons, ISVs don’t want to use RPM, and as already mentioned, not all distributions support RPM natively.
Fortunately, once again, this isn’t just a rant. The LSB tackled these very issues at the LSB face to face and Packaging Summit last week in Berlin, Germany, and we think we have a way forward that’s acceptable to all involved: Linux distribution vendors who already have well established package systems and systems management tools built around them; ISVs who need to support multiple platforms and so don’t want to support the Linux specific RPM format or who otherwise want more control over the installation experience; and end users who want to use the software management facilities their distributions provide, whether that’s RPM or something higher level like APT and yum. More in part 2…
December 15th, 2006 at 4:08pm
Actually this issue made my migration so hard. I was constantly asking myself where is the setup.exe? I could only manage to install one out of five tar.gz files… After more than 6 months of intense linux usage I still opt to find a .deb package instead of trying the ‘make install’ way.
I agree with you on the point about decentralization but a standardized package management that works on Debian/Fedora/Suse/Mandrake/whatever you want, would make common users’ lives much easier.
Excuse me for my noobism.
Regards,
metalqga
December 15th, 2006 at 5:23pm
The installation and update methods should be redesigned, not only for linux (the many implementations of) but also for windows and mac. What I have in mind is a combination of ideas that are already out in the wild.
1. The installer and updater should be the same application;
2. This application, say CANARY, should be developed and distributed like firefox (the same application running on all OSs);
3. Installing open-source applications should be as easy as running CANARY, select the application you want, and hit a big green button.
4. CANARY will run in the background, like CheckUpdates, and “chirp” whenever an update becomes available.
CANARY should hide the differences between platforms. The user does not need to know that, for example, firefox for linux style X is installed in the directory Y instead of Z, and so forth.
December 15th, 2006 at 5:33pm
>> Sometimes, when I’m trying out an unfamiliar open source component, I cheat.
Hint: If you were really working with an “open source component”, maybe it wouldn’t be being distributed to you in the form of a binary blob inside a shell script.
December 15th, 2006 at 5:46pm
Some people would rather deal with binaries than source code. dpkg was built on this idea 13 years ago, so I thought that went without saying by now. -ian
December 15th, 2006 at 6:49pm
“Some people would rather deal with binaries than source code.”
I’m perfectly happy with either option, building from source or binary installation, when it works as expected.
December 15th, 2006 at 7:00pm
I could agree with you until you say this:
> ISVs who […] don’t want to support the
> Linux specific RPM format or who otherwise want more control over the
> installation experience
what if I, the user, do not want them to have control over my experience? What if I don’t want random software to reconfigure the drivers, replace system components, write criptic information that cannot be uninstalled into a registry or reboot the system without asking?
LSB people, if RPM is not flexible enough for legitimate uses, by all means fix it, but please don’t turn Linux into another Windows where the end user cannot control *his own* system.
ISVs who want “control over the installation experience” are just like web developpers who want “control over the browsing experience” and use crap like flash or active-x: a nuisance. You should tell them to learn to code with standards, not cave to their demands.
Cheers,
BC
December 15th, 2006 at 7:13pm
[…] Ian Murdock has a post titled “Software installation on Linux: Today, it sucks (part 1).” Anyone who has ever installed software on Linux is familiar with this song and dance. If it’s in your distro of choice, you’re only an apt-get or a yum install away from running it. But if not, you’d better know what you’re doing, have a lot of patience, and understand how to construct effective Google search terms. (And, no, moving everything into the distribution is not a very good option. Remember that one of the key tenets of open source is decentralization, so if the only solution is to centralize everything, there’s something fundamentally wrong with this picture.) […]
December 15th, 2006 at 7:58pm
The main problem I see here is that dpkg does not resolve dependencies but fails instead and aptitude does not install .deb package file unless they come from a repository.
If we could combine those two, I could just open the .deb file with my archive manager of choice, it would resolve the dependencies and I wouldn’t have to worry about anything (provided that the ISV distributes a .deb file).
But obviously you can’t rely on that.
Oh, and isn’t the chmod part one of the Linux security measures that prevent me from executing code just because it has the extension for hell-yeah-run-me!?
I find all this to be the fault of ISVs, not Linux.
December 15th, 2006 at 7:58pm
Is there a summary of the Berlin session available anywhere, Ian? Unfortunately scheduling prevented my attendance.
December 15th, 2006 at 8:37pm
That’s part 2. :-) -ian
December 16th, 2006 at 1:31am
[…] Ian Murdock’s Weblog » Blog Archive » Software installation on Linux: Today, it sucks (part 1) “The LSB tackled these very issues at the LSB face to face and Packaging Summit last week in Berlin, Germany, and we think we have a way forward that’s acceptable to all involved” - i’m all ears (tags: package management LSB FSG Murdock RPM DEB apt yum) […]
December 16th, 2006 at 5:36am
Andre: “gdebi lets you install local deb packages resolving and installing
its dependencies.”
Of course, ISVs could just provide apt repositories of their software, it seems to work well enough for the non-free codecs, the latest bling (deb http://ubuntu.compiz.net/ edgy main-edgy) and so on - there’s nothing centralised there.
December 16th, 2006 at 10:06am
You should try the Arkollon installer. It’s pretty good, and easy to use. Apollon, a file sharing client, uses it. Not sure how you can get it separated, but I’ve seen a few other apps using it.
http://apollon.sourceforge.net/index.html
December 16th, 2006 at 10:47am
The problem is that people (including software distributors) believe there’s such thing as “Linux” as a target platform. If you’re distributing software for “Linux” then it won’t be simple to install it, ever.
If they would support “Debian GNU/Linux”, “RHEL”, etc, things would be so much easier from the users POV. For example, to distribute software for Debian you could simply put it in a Debian package and when the file is double clicked from the file manager it is opened with gdebi, which graphically deals with dependencies and installs is.
A good step in this direction to help developers at least build their software for several systems is Novell’s build service.
December 16th, 2006 at 10:57am
The fact that files downloaded from the Internet are not directly executable under Linux is a security implementation. Part of Windoze’s flaw is that once you download a file, it’s immediately executable. That’s fine if you only download Java Studio, but what if John Doe downloads a virus without knowing it? How many John Doe’s don’t even run an anti-virus program because they bought their computer for $200 at WalMart and have never heard of Anti Virus before? Making a file executable before you execute it is the user actively allowing a downloaded program or script to run. One thing I never understood under WinXP is that I must have at least one “Administrator” user account but that I don’t have to give that user a password. And a regular user still retains rights to install system wide software. At least under Linux, you still require the root password before you can make any system-wide changes. It’s unfortunate that people in this country are led to believe that the Windoze-way is the correct way for using a computer.
Now, not all open source programs are suffering from this installation problem. Most distributions these days have all the important applications already in their package manager and all you have to do is check the application and hit Apply. A far cry from what you need to do under Windoze (download it or buy it at a store, execute the installer, hit “Next” a few times, etc). But even if a program is not available in the package manager, you can usually find good help in the distributions’s support forums on how to install a piece of software. Since you said you develop open source applications, I’m assuming you already know how to compile an application so I don’t really understand how configure/make/make install something can give you any problems. Especially dependencies. Look them up in your package manager and install them before running to Mama Google and complaining that the big bad open source guy doesn’t let you compile your application.
Linux is ready for the desktop, but people are not ready to change. Microsoft has done a good job at getting people to dance to their rhythm. But as long as you have an open mind, open source and linux will be ready for you.
December 16th, 2006 at 2:17pm
I suppose Independent Software Vendors = Proprietary Software Vendors? I hope gnu/linux software developers won’t bend down too much to acomodate their special needs,
I think a lot needs to be done in regards with installation, handling of libraries, etc., in free software, but I was hoping that one day all distributions and developers could create something new, instead of copying what Windows has been doing for years (with the bad results it has shown, like thousands of windows computers plugged to the net running spam bots).
Instead, learn from others, and improve on them, while taking advantage of the technical and social nature of this software (as well as distro, developer and user communities).
December 16th, 2006 at 3:53pm
This guy got it wrong. First he quotes something about “trying out an unfamiliar open source component”.
Then he describes how he installs Sun Java Studio Creator. It is not open source and that is the reason he has problems. If it had been open source everything would have worked great. It would have been possible to build it against the libstdc++ of his system and his distribution would most likely have done that already and provided a package.
But it is not open source. It is a proprietary application that is only available as a binary built against an old version of libstdc++. That is what is causing him the problems.
So blame the proprietary software, not Linux.
December 16th, 2006 at 4:53pm
[…] Original post by Planet Debian […]
December 17th, 2006 at 9:50am
Eric: The point is: that makes the plattform completely unusable for proprietary applications. Then we wonder, oops, why aren’t there commercial applications. And then Ian steps up and say we suck. And you say, its not a bug its a feature and open source has no problems with it.
December 17th, 2006 at 11:30am
[…] Blogpost from Ian Murdoch where the writer is referring to. No Comments Leave a Commenttrackback addressThere was an error with your comment, please try again. name (required)email (will not be published)(required)url […]
December 17th, 2006 at 12:24pm
Erik, I agree with Wump. Also, not all open-source applications are available as pre-packaged distribution files. Many open source files are source packages and don’t include the specific distro-specific package (RPM, DEB, etc.) for all systems. I know personally I have tried to install open-source applications in vein because of it using source only. I don’t even try to run make installs anymore because the last one I did successfully took me three hours to find all the required packages. This also means that I am missing out on a lot of open-source (and eitherwise) applications because they can only be installed through source.
And what about proprietary software? Personally, I think there should be more available to linux. Competition is healthy, and that is pretty much the motto of open-source (ahem, free as in free speech) software. If open-source has to compete more with proprietary software, there will probably be more innovation overall. It also gives the user choice, which is like the soul of free software. YOU choose what you want to use and I think it is about time for proprietary software to become a bigger choice for linux users. The planning and deployment of this system looks to bring that choice one step closer. I support this fully and have actually been asking around about this lately to see if something like this was in development.
December 17th, 2006 at 3:48pm
Ian, you are obviously missing the point and are absolutely clueless.
Before you rant on in part 2, please figure out what is this evil “open source” thingy.
December 17th, 2006 at 6:09pm
[…] Ian Murdock summarizes about software installation on Linux: Today, it sucks. He is so right. But the solution isn’t another bloated InstallShield installer that takes hundreds of megabytes of temp space and endless minutes wasted on watching progress bars. The solution is to do away with “software installation” (as we know it) altogether. […]
December 17th, 2006 at 6:21pm
Nice read - I’m really waiting for the part2 and hope that you will publish it before christmas :)
It would be also nice to read a bit about the Desktop Architects Meeting 3. I know the slides but a first hand report would be nicer :)
December 17th, 2006 at 7:37pm
See the screenshot here: http://klik.atekon.de/blog/?p=34
December 17th, 2006 at 8:03pm
probono (Simon Peter), core klik developer, this afternoon has created a klik bundle of Java Studio Creator. A klik bundle is an application encapsulated into one single file, including all direct dependencies not satisfied by the base Linux operating system. This one includes the required Java as well, making it a 600 MByte heavyweight.
That one “file” in reality is a compressed image archive. The beauty of such a klik application file is that it is relocateable to any place (including USB stick or CD-RW) and happily runs from there. Or it can be copied to another machine (which does not need to be the exactly same version of Linux) and it runs there too.
What it means is this: no installation at all! Just copy one file to a suitable place and click on it… Could it be more easy for a user? (Of course, one can create some helper applications around that simple concept [which, BTW, made its first appearance in the NeXT OS] to make it even more convenient).
Installations (as we know them) shouldn’t be made “unsucking” — they should be made deprecated altogether! The idea of “1 application == 1 file == 1 click to download+run” has yet to be made to deliver its full potential.
You can see a screenshot of this afternoon’s creation in the klikblog.
Unfortunately, probono can’t distribute this bundle due to the Sun license for the software. So for the time being, it needs to stay his private edition.
More unfortunately even, klik developers can offer a scripted standard klik recipe for Java Studio Creator either. Such a standard recipe would download the files form Sun anyway, and let the klik client convert them into a klik bundle locally in an automatic way. Whoever wants to download the files does need to jump through several rings, register his name and email, agree to the license and bow 3 times to the East… (I’m kidding, of course) which makes it difficult (not impossible) and time consuming to create even a manually tuned klik recipe.
Maybe someone can convince Sun to host probono’s JavaStudioCreator.cmg file on their own web servers for download? Maybe Sun would even agree to remove the typical bureaucratic steeple-chase of their downloads and make it a one-click affair for this one? If so, we could still offer the familiar klik://SunStudioCreator recipe link on the klik server: that one would simply re-direct the requester to the ready-made bundle hosted by Sun….
December 17th, 2006 at 10:42pm
I disagree. In my view, software installation is 100 times better in Linux than in Windows. With Windows you must download the installer and ANY of the required dependencies (like VB Runtime etc) manually and install EACH one separately by clicking on the executable, etc.
WIth most Linux distros, you just run a Package Manager, select the program you want to install and click install. The Package Manager automatically downloads and installs NOT only the program you selected BUT all the required dependencies. FANTASTIC.
In addition, the package manager will tell you when an update is available and will install it. Typically, Windows will NOT do that. You must remember to manually check the website for EACH third party propgram you installed and install it. Most Windows users do NOT do that. In my view, that is one of the main reasons Windows is so insecure.
I suspect that this issue you are raising is a concern to proprietary software vendors. To keep costs down, they don’t want to release their software in three or four Linux Package formats. In my view, that is just the cost of doing business. Grow up. A smart software vendor should release the program in .RPM and .DEB pacakage formats at minimum. Better yet, the software vendor should consider creating a repo that a user simply adds to his package manager. (Adding the repo makes it easy to keep the software up to date).
The package manager will do the rest.
For the distros that do not use RPM or DEB, the software vendor should also release a BIN version.
Of course, this is NOT an issue for OPEN SOURCE projects. The maintainers for the distro can compile the source and package the binary to suit the distro’s binary package system.
Better yet - forget binary pacakges and compile the software yourself. That is my preference. Long live Free Software and Open Source Software!
Rob
December 18th, 2006 at 4:33am
In contrast, on Linux, I click on the .bin, which downloads the file and.. up pops a text editor showing me a /bin/sh script. Nice. Fortunately, I know what that is, so I save the script to a file on my desktop. I double click the file, and.. up pops a dialog box telling me the file isn’t executable.
Wha…hmm…huh? Since you’re Debian’s founder (and it’s got a great package management system!), I know you know better than that — but some reading might not. You know better than most you’d pull up a console, make the .bin executable (or run it with “sh”), and then run it. The last thing you’d do is double-click, then do a “save as” in a text editor.
You also know this is a security feature, as Permafrost91 said above, not a bug.
and I hope I don’t have to explain why cd’ing to ~/sun/Creator2_1/bin is not an answer
Why isn’t it an answer? Is it your goal here to make it so people don’t have to learn how to use their operating system? (You do know Debian’s reputation, don’t you? :-)
Microsoft has its own, well-documented installation system built into Windows. You double-click on a binary blob (usually *.msi) and the installer starts. There are other installation systems developers can buy for Windows.
Linux, on the other hand, doesn’t have a built-in installation system that works across various distributions — and, as you mention, there’s a reason for that. If you took the unpacked binary libraries an application depends on (like your “compat-libstdc++”) that are built for Debian, and put them in the “correct” directory on openSUSE, they probably wouldn’t work.
Which is why, when you go to download Opera for Linux, for example, you get a pull-down menu asking which of 15 different distros you might be running.
Good luck with your efforts. It would indeed be nice if there was a common installation system for Linux that worked across various distros. And the debate about running proprietary software on Linux is only going to heat up as more people adopt it.
December 18th, 2006 at 5:39am
“Forget binary pacakges and compile the software yourself” is not an answer to “end users”. Compiling software involves development tools, libraries and knowledge, and usually lots of time.
To the developer, binaries without the source are worthless.
Obviously, Ian understood that early on when he created debian. This truth drives the Open Source/Free Software movement.
There is a second, and equally important, truth however:
To the user, source without working binaries is worthless.
Ian also understood this truth as well. When he created debian, he addressed both truths: After all it’s a collection of binaries, along with source.
The concept of distributions and pacakge managers works very well in a centralized environment, in a world where the distribution maker and/or a system administrator centrally manages many computers, and where the end users have little choice besides what the distribution and/or the administrator provide.
In a world of desktop/notebook users who have no administrator, however, the distribution model works best for a “base system” which provides a standardized platform for end-user applications to run on top. The purpose of an operating system is to provide the infrastructure for the user to run the software he cares about, be it Open Source or not.
Seems like not everyone understands that as well as Ian does.
December 18th, 2006 at 6:01am
If you are not happy, why take a look at these:
http://zero-install.sourceforge.net/
http://klik.atekon.de/
Cheers,
Haakon
December 18th, 2006 at 6:05am
The fact is: some people use Linux because it works well for them. And other folks use Windows because it works well for them, too. They have specific niches. Trying to change the OS foundation just to please end-users on Linux side, or power users on the Win side is insane.
December 18th, 2006 at 7:17am
After one month of installing Ubuntu,I still haven’t been able to set up a dial up connection.I have to subscribe to a high speed connection very soon,and if after doing that I can’t get a connection,then it’s BYE-BYE.I really don’t want to use windows anymore,but what can I do.I can’t even get my dvds to play.
December 18th, 2006 at 7:55am
Well, if you know nothing about computers and want to stay that way, do the Windows thing. Linux takes a little more knowledge. Yes, Virginia, you must know how to chmod a+x, ./jklfkjdfkljsd.sh and other geeky things, but with knowledge comes power. It is satisfaction enough to know that I got the Sun studio working without too many trips to the man page, but why would you want linux to be cookie cutter windows?
To make Linux easy, you must dumb it down, like Windows is. Windows is easy to use as long as you want to do as Microsoft says, if you need to do something that Redmond hasn’t considered useful, then you have to spend just as much time and money in Windows learning how to do the really cool stuff, just like Linux.
You gave one example of a Linux program install verses a Windows program install. What about compiling a non Windows ported version of a gnu program in Windows, you must really jump through hoops to do that, but of course, would be way to much trouble. Just keep plugging and praying and when you get that cryptic error message and a request from Microsoft to report the error, just do as your told and you will be fine.
NOT.
December 18th, 2006 at 8:36am
I agree with the original post, most not open source software for Linux is out of reach for average Joe because of impossible installation maneuvers. World needs a competitor for the monopoly and I have been hoping one could be Linux. But since community seems to think open source is not for everyone, Monopoly keeps ruling.
December 18th, 2006 at 8:59am
A few things here.
Most Linux applications tend to be installed from a repository (such as for Ubuntu, Debian, openSUSE or Fedora) and as such are much easier than Windows applications to install.
SMART (http://susewiki.org/index.php?title=Smart ) is absolutely superb and easier than using Add/Remove programs in Windows (i.e. you can actually install applications from here.)
For stand-alone applications such as Java Studio Creator then perhaps it would help to move over to using autopackage (http://www.autopackage.org/docs/howto-install/). IMHO this is definitely as easy and comparable to installing a Windows application via some form of Setup.exe file. Contrast your experience to installing Xara Extreme (http://www.xaraxtreme.org/download/ )
1) Download the file (http://downloads.xara.com/opensource/RecXaraLX0.7_rev1692.package )
2) Right click (in Konqueror or Nautilus) and make it executable.
3) Double click on the .package file to run it.
4) Enter the root password (so that it is installed for system-wide use)
5) Click on your KDE or Gnome menu item and use it!
I have come across plenty of Windows programs that were terribly difficult to install or uninstall (try uninstalling Microsoft SQL Server 2000 after you have installed Microsoft SQL Server 2005 Express as well and see how far you get!)
As Kurt said above, Klik is just as good (especially if you might want to just try something out).
I have spent years working (and fighting with) Windows software and it is definitely no worse or better than Linux based software - just different. Different does NOT necessarily mean more difficult.
December 18th, 2006 at 9:05am
I have a couple of points here.
1. What about documentation??? Aren’t you supposed to read Install Docs and Release Notes before you install ANY piece of software on ANY OS ?!?! Pardon me, but you do deserve to get screwed if you install stuff without knowing how to install/set it up properly and if you do not know what are the required components for that software to function properly. If you just read the install instructions, I am sure Sun Studio comes with that, there would not be any “surprises” to talk about.
2. Point #1 is not limited to software installation. If you do not know some basics on how to maintain your system (Win and/or Linux) expect troubles sooner or later. If you are practicing a “dumbed down” approach you should expect a dumbed way down outcome.
December 18th, 2006 at 9:30am
“Aren’t you supposed to read Install Docs and Release Notes before you install ANY piece of software” -> this is why you shouldn’t be forced to “install” software in the first place. To run an app, you shouldn’t need to do more than you need to do play some mp3 file: (double)click on it. No need to “install”. (Of course you should read the docs anyway, if you are interested in the inner workings of the app. But hey, who reads manuals.)
December 18th, 2006 at 9:31am
Dear god - why does this article sound like it was written in 1999? Has the author ever used Ubuntu? Has the author ever even heard of Ubuntu???!!!
I install software all the time without ever having to open a shell, and that IS the state of linux software installation today. Are there some binary packages that require a bit more work? Yes, absolutely. But I would say that these are the exception, not the norm. Average Joe user could spend years on linux and never open a terminal.
Honestly, perhaps a little research would yeild a better article, or at least one that sounds like it was written IN THIS DECADE!
December 18th, 2006 at 10:03am
@Randall Walls
I suspect that Ian Murdock has indeed heard of Ubuntu, given it is based on the distribution that he founded.
Installing software from a distro’s repositories is easy. Installing other software can be tricky, for a newb. I do think the ISVs can do more.
December 18th, 2006 at 10:56am
To Simon Peter:
I read manuals. Not all the time, and not from the first word down to the last one. But it can save you from some troubles down the road. At least, I do recommend reading the manual if you install something for the first time ever.
“you shouldn’t be forced to “install” software”.
How can you go without installing software? Either it is an entire OS or a specific package? Double clicking on MP3 file is not the same as installing a software piece. But you should have a proper program (or a plugin) in place to handle your MP3 file (just like with any office docs or a java file in case of this article) . In this sense, you’re forced to install software (unless you paid somebody else to do it for you).
December 18th, 2006 at 11:41am
Having been a developer of InstallShield scripts back in the 90’s I know that the install experience can be made just as frustrating for Windows. The issue is not Linux. The blame cannot be placed on the operating system but on the developers of the product you are trying to install. The problem is that developers spend more time and effort making the install process clean and user friendly on windows but just slop something together last minute for linux. Could a company release a product that installs only by DOS batch files on Windows? Sure they could. Could a company release a product that has a nice user friendly installer on Linux? Yes they could. But why don’t they? Maybe because they want to send a message that linux isn’t worth their time. We need to change their opinion of Linux. Linux itself doesn’t need anything changed.
December 18th, 2006 at 1:05pm
@Jason:
You seem to have a “traditional” concept of using software. You asked: “How can you go without installing software?”
Look at klik. The idea is to separate the base Linux system from end-user applications and to create “application bundles” represented in 1 file (which embeds all exectuables and direct dependencies in the form of a compressed file system archive). And the idea works, as klik proofs.
This concept also makes the software easy to relocate (to a different directory, a different medium such as USB stick or CD-RW, or even to a different machine) and run it from there.
In a sense, that indeed means “installation” of software (as we know it) is no longer there. Just take one file and run it. That file will not mess with your system (overwriting other library versions with its own; conflicting with libraries that are currently installed).
The klik design principle of “1 application == 1 file == 1 click to download+run” (where ‘download’ of course isn’t required for next ‘runs’) is a very sound one. klik’s current state of implementation of course can be equipped with much more sophistication and polish in the future — but for now we’d like to know how people do like it. People who have actually tried it at least once, I mean….
December 18th, 2006 at 1:18pm
You’re absolutely right. I like using Linux, but problems like this keep me from ditching Windows. It frustrates me to no end that software is so hard to install on Linux. You’d think somebody would have come up with a better way.
For all of Windows’ flaws, painful software installs are not among them. While this does open the door for installing something sinister, it does allow most users to install software and work. When I encounter these types of issues in Linux, I spend more time configuring my software than actually using it.
December 18th, 2006 at 1:52pm
The product installers. Good issue. But truth of the matter is the vast majority of desktops at the present moment are MS windows. It is not worth to invest time/money into something that targets only a small fraction of end users (multiply that by variety of Linux distros/package managers/desktop environments).
“Linux itself doesn’t need anything changed.”
This kind of thinking will prevent it from being a major player in the desktop market. The masses will not change for Linux. Period.
Also, Linux has feeling of “work in progress” with the continuous bug fixes and patches. It is good that bugs are getting fixed, but they should not get into a stable or a distribution release to begin with. If you look at this issue of distrowatch.com, you’ll find that many of popular distros had their share of issues. A bug fixed on a bunch of corporate web servers does not get the kind of visibility it would get on millions of desktops. You can easily find web sites that are not handled properly by Linux plugins from the freshest distros (while FireFox on windows does it just fine even without the latest version of the plugins). A document created in MS Word with complex layouts still will not look the as in OOWriter. So, Linux is in need of polish to become a major desktop player and “replacement” for the other OS. Sorry for getting away from original subject.
December 18th, 2006 at 2:20pm
I agree with pontke. I’m really an end user, maybe a bit more sophisticated than some, but an end user, not a programmer. In my experience, I’ve encountered as much frustration/satisfaction installing Windows applications as with Linux. And sometimes I do install Linux applications from source. I don’t see why its so vastly more difficult to type ./configure, make, make install than to find install.exe or setup.exe, run it, and type in a 25-digit serial number. Yes, you have to deal with dependencies for the more complex applications, but I’ve always been able to fix missing/outdated ones. It’s rarer in Windows that an application will break something by overwriting a particular .dll, but when it happens, it’s hard to fix. I guess I just feel more secure watching compilation/install text scroll by on a console than an animated bar graph indicating “install progress,” wondering what in the world is going on in the background.
December 18th, 2006 at 2:25pm
“The klik design principle of “1 application == 1 file == 1 click to download+run” (where ‘download’ of course isn’t required for next ‘runs’) is a very sound one.”
I like that idea too, but isn’t that the very thing about windows that makes it so insecure? You click on a thing and it launches installer from somewhere??? It sounds like giving admin rights to a regular user. Or I am not quite getting the idea…
December 18th, 2006 at 2:52pm
@Jason:
a) klik requires no root rights, so the software can do less harm than any deb/rpm you download “from somewhere”
b) klik doesn’t download “from somewhere” with “somewhere” = “random”
So no, what makes Linux more secure than Windows is not the fact that applications are more cumbersome to install.
December 18th, 2006 at 3:02pm
“I don’t see why its so vastly more difficult to type ./configure, make, make install than to find install.exe or setup.exe”
It is not that more difficult, but do you really suggest that average Joe-The-User compiles a program from source code on his/her low grade PC? How long will it take to compile an average size application? Or how would you educate him/her to make sure they got proper version of gcc and glibc ??? My answer is: the end user should not need development tools to run programs. It is better that Linux vendor/reseller takes care of it.
December 18th, 2006 at 3:10pm
I have been using Linux since 96, I still dread/dispise installing software. I love Linux! But I hate installing new software on it though. Many times I get to point where when trying to install new software I receive message stating I need a .so, lib or some other file. I go get it only to be told I cannot replace the one I have because other programs require it, I try to upgrade them only be told again that they need new files…so I wait until a new distro comes out and hope that the program I want works on it….I have never upgraded the kernel or the os, always a new install, at least 200 times, not exagerating.
I think that the installs should include the files it needs, or at least offer a couple of different downloads for those of us who have a life other than trying to figure out an try to learn how to install every app. I am not a programmer, I have no desire to learn how to, and I have no need to. I do not want to learn every program’s config options, do I have this installed, compile –with blah blah, I mess it up every time any how and end up doing it 4 -10 times, 3-4 days later (for one program that I do not even know if I can make it do what I am hoping it can) ….oh and RTFM It is a simple program, why do I need to know what files I need to compile with it…my head swells, I walk away ranting, only to keep coming back to it because in the end I still think it is far better than Windows. I do love Linux but Hate installing programs.
Ciao
December 18th, 2006 at 4:42pm
I am a software developer who does not like to muck around with operating systems and environments too much. I like to program. I work full time with Windows and part time with Linux. I want to produce my results quickly and efficiently. For this reason I still prefer Windows, but I hope I can move to 100% Linux one day. These guys at MS are just getting crazy. Just look at the bloated Vista with all their anti-piracy-how-to-tell-pull-out-your-credit-card gadgets. Here is my prophecy: The next Windows version will be called Windows-Sharia. The only Windows-authorised PC will be a sealed-off device with a screen and two holes. You will have to stick your hands into the holes to operate the PC. If you copy software illegally, then the Sharia will chop your right hand off.
This is why I think the Klik and Zero Install (see the links above) are a real blessing for Linux. Apt-get is great, but it can sometimes screw up your PC hopelessly.
Regards - Martin Jasny
December 18th, 2006 at 4:55pm
So, the Java Studio Creator installer succs. How is this the fault of open source or Linux.
Its not hard to make a good installer that works regardless if you run windows or not.
What Sun should have done is to work with existing install systems. What sun should have done should have been to set up a repository of their software, that way it would have inteacted with the Linux package manager. If done right installation is usually just a mouse click away. Using repositories also makes it possible to distribute updates automagically.
It shouldn’t be hard to create such repositories, most Linux support the LSB standard so they would know what libraries to expect.
December 18th, 2006 at 5:56pm
“The next Windows version will be called Windows-Sharia. The only Windows-authorised PC will be a sealed-off device with a screen and two holes. You will have to stick your hands into the holes to operate the PC. If you copy software illegally, then the Sharia will chop your right hand off.”
Ha-ha-ha. I like this one. This would probably prompt people to look for an alternative OS much faster :)
December 18th, 2006 at 6:21pm
Another option is to use the packaging approach used in Mac OS X and also in GoboLinux. The binary and ALL the required libraries are packged typically into one directory.
This approach typically duplicates dependencie / libraries but on the other hand each application can use its own version of a dependency or library. The use of this approach in Mac OS X is one of the reasons why new installations of software in Mac OS X are more reliable without any dependency issues (like in Linux).
MacOS X could have used the packaging approach used for many years in Unix / Linux but did not. One should ask why? I think Apple though the Unix / Linux pacakging approach too cumbersome and prone to dependency issues.
With a good package manager (which Mac OS X does NOT have), a Linux distro using this approach would be awesome to most end users and more reliable than a typical Linux distro.
Check out GoboLinux which uses this approach.
RobK
December 18th, 2006 at 6:35pm
One more addition: The Zero Install web site seems to be a little unfair to Klik concerning the root rights at their comparison page:
http://zero-install.sourceforge.net/matrix.html
To my knowledge you only need to be the root when you first install the Klik framework. You do not need to be the root afterwards, when you pull down the applications from the web. So the comparison table is a little incomplete or misleading, if not unfair.
But I am not an expert on either of these frameworks. I have found this information on the German Wikipedia entry about Klik. What do you think?
Regards- Martin Jasny
December 18th, 2006 at 6:54pm
I’m a bit confused. Are you complaining that “Sun”, a competitor to RedHat, doesn’t release a Redhat installer package? Or are you complaining that Redhat did not create a Redhat installer package for one of it’s competitors products?
I just want to make sure that I have a handle on the issue. I’d create the RPM myself if the site would let me DL the utility. They appear to be having issues at the moment. Hopefully, the license won’t prevent me from creating an installer.
Frank
December 18th, 2006 at 7:24pm
There’s a more fundamental aspect to this, which the subhead to Mr. Murdock’s blog, “the Linux business opportunity,” points to. In a nutshell:
Why should an unpaid, volunteer developer or maintainer of an open-source application care if there’s a common mechanism that spans the various distributions that makes it easier for users of closed-source, proprietary software to install it? Who’s this aimed at, the end-user, or the software vendor?
(To use Mr. Murdock’s example, Java Studio Creator may be “free” as in “free beer,” but a 3-year “premium service contract” will set you back $3000.)
If software vendors want a mechanism like this, it would seem to be up to them to come up with it.
December 18th, 2006 at 7:37pm
obviously the problem is that yer a dumbass.
December 18th, 2006 at 8:10pm
RPM/.deb/.tgz.. All have their advantages and disavantages, all have their infrastucture, proponents and developers. Too many egos in the way. Unless everybody or at least most can swallow their pride and agree that there should indeed only be one way to install software in Linux, it will never happen. Unfortunately that goes against human greed and the ways of modern humanity. Not pessimistic, realistic. Whatever solution will have to recognize and use all of them for it to happen.
December 18th, 2006 at 9:47pm
Ah, Windows is being compared, is it? Well, okay, I download my .exe file and put it somewhere. Then I go to Control Settings, Add/Remove Programs, and I click on Add and I click on Browse, and I find my directory where I stored my file.
Oops! Where is it? Uh, oh! Guess what? The Add/Remove programs browser assumes you ONLY want to install .msi programs - official Windows installer programs. But your ISV used some other installer and it made an .exe program instead.
Now, if you KNOW Windows did this, you just click the drop-down box and select “All files” and you see your install program, then you click or double-click on it and then say Ok and Finish and away you go.
But if you’re clueless, like most Windows users, you’re stumped by the simple fact that your file doesn’t show in the browser window. Sad, but true. Another example of both poor usability design and Microsoft arrogance (why would ANYONE want to install something not installable by OUR installer? )
Another comment. I like the way Firefox is installed on Linux. Download, untar, run the script. No Registry crap, no stuff scattered all over your system (except for your profile information) that you can never find when you need to uninstall. When the distros get hold of Firefox, though, they try - or think they’re trying - to follow the File System Hierarchy recommendations, and they scatter Firefox to the four winds of your directory structure instead of putting it all in /opt where it belongs. More stupidity. If a program isn’t part of the system, if it is a program installed by the end user (even where the “end user” is actually his own “system administrator” on his own machine), install the thing in /opt. It’s NOT part of the system, no matter what it does (obvious system utility exceptions aside).
I agree that all Linux and OSS software should install as one single file put in one place which runs when clicked on in the file browser. Forget the system menu structure altogether - let ME organize MY OWN “menus” from my directory structure. OR have a standard that allows this single file when run the first time to tell the system WHAT KIND of file it is and WHAT KIND of APPLICATION it is so the system can figure out where to put it in the menu structure. So we can avoid the situation I have now on Kubuntu where Kate is under “Utilities” and a newly installed jEdit is under “Editors” in “Other Applications”…
The problem is ALL the distros have their own notions of menu structure, not to mention overall system structure. The “Not Invented Here” syndrome is paralyzing to the entire OSS industry. The Ubuntu “we’ll never let you run as root no matter what” attitude - contrary to every other Linux distro on the planet - is an exceptionally bad example. Not to mention the “we’ll never let you see the KDE Control Center unless you jump through hoops” attitude.
Ultimately we need to do away with “applications” altogether - an “application” should simply be something else the OS knows how to do.
December 18th, 2006 at 10:17pm
Linux has come a long way. 10 years ago I hated it, couldn’t understand it and I’m a geek. Now it’s so good that I offer it as an operating system on pc’s I manufacture. The install issues will only force developers to make better installation packages. I for one appreciate all the hard work linux developers do for free.
In my opinion, Linux has to become better at playing video files on the web, playing dvd’s, playing online games, yet some of these issues are only because I’m basically a newbie to Linux. As I research some of these issues and become better at installation, both me and my customers will be happier campers.
Thanks for the hard work and issues of installation will become non-issues because developers will get better at it, most of them anyway…
December 19th, 2006 at 1:42am
What surprises me so much is that these rather obvious deficiences seem to have eluded the men behind the major distros. Only the other day I read an article where someone from Red Hat / Fedora were reaffirming their commitment to RPM, as if there was nothing wrong with it, and no way to improve on it. It looks to me like these people are in serious denial, and living in some kind of cloud cuckoo land divorced from reality.
I also never ceased to be amazed at how what seems on the surface to be a very simple issue - e.g. copying software from one medium to another, has to be so complex and error prone.
For example, why not simply install ALL the damn libraries ever written off the DVD onto the hard disk during installation of the distro. The HD’s are easily big enough to handle this. Then a utlity could be provided that could prune all files not yet referenced. You could run this after the system has been in use for a year and fully configured, and it could archive off all unused libraries.
I would much rather be faced with the problem of wasted disk space than applications that wont run. With 250 Gig hard disks selling here in Australia for A$125, who cares about wasted space?
Im still looking for the distro that installs a fully useable system up front, playing DVD’s, 3D drivers, firmware blobs, etc, all out of the box.
One day it will happen, the only question is will I still be alive to see it?
December 19th, 2006 at 1:09pm
Murdock: Software Installation on Linux: Today, It Sucks (Part 1)
As anyone who follows my blog knows, I’m fond of linking to other sites with brief little quotes that either get me thinking or reinforce points I’m trying to make elsewhere. (Credit where credit is due: Dave Winer and Doc Searls both do this very ef…
December 19th, 2006 at 2:12pm
Well you are using something from SUN.
If you use linux use 0 corporate software. SUN wants you to use solaris, not linux, in a clear conflict of interest. JAVA is the same way.
Use really free tools either gpl or bsd licensed, then you will not have paid engineers secretly fighting you.
JAVA studio creator LOL!!
December 19th, 2006 at 2:49pm
Isn’t it his/her free choice to use Java Studio Creator ???
Sometimes it is really funny to hear these “freedom” talkers. But don’t you use something from Sun. Really LOL
December 19th, 2006 at 3:49pm
Those of you who believe people are the problem because they’re not willing to change should stuff a sock in it. People want things to just work and will not change if they don’t want to. And they should not always be forced to. MS catered to this and I’ll give them props for it. Deny it if you will, but Windows IS the reason why pretty much anyone can and does own a computer today. Now it is time for desktop Linux to steal those people away and the only way to do that is to make it as easy to use as Windows is.
If you disagree with that, then you’re only hindering the efforts of those who agree. If I want to use a new application on Windows, I simply download it, double click the installer, perhaps a few personalized options, and a few short minutes later (if that in some cases) I’m running that application. Can I say the same with many distros I’ve tried? Absolutely not.
Then you sit here and chirp about how having to make a file executable by chmod’ing it is a “security” precaution. Give me a break. In a properly designed Linux system, a virus can’t hurt the system (maybe just the user-specific stuff) when you are running as a user as you should be. If you want to blame MS for anything, blame them for designing Windows wrong from the ground up where security it concerned, not for making it easy for people to use new apps on their operating system.
Like it or not, Linux is going to have to rip a few pages from commercial vendors’ books and start doing these things if it’s ever going to gain a significant foothold in the consumer market. Saying that people are the problem because they aren’t willing to change is the same as telling a paying customer that they have to change in order to do something. Customers don’t like that when they are shelling out the cash. Perhaps you should start considering the user community at large more like customers instead of saying they are the problem because they aren’t like you and as willing to change.
And as many FOSS advocates so poignantly remind people constantly, isn’t that their CHOICE?
December 19th, 2006 at 5:09pm
@RobK
“Another option is to use the packaging approach used in Mac OS X and also in GoboLinux. The binary and ALL the required libraries are packged typically into one directory.”
Right, I agree. Except that this is not quite “another” approach from what above mentioned klik does. It is, in essence, the same — with an additional twist: instead of putting “everything in one single AppDir directory”, klik puts “everything into one single file”. [Where the single file typically is a cramfs-compressed archive of the mentioned AppDir…]
This approach gains several additional benefits over simple AppDirs:
Saves space. Typically you’d need 35 harddisk units instead of 100. (And doesn’t cost any noticeable CPU overhead to uncompress into RAM for running it…)
Makes relocation to different medium more easy, and faster. (Copy only a single file.)
Makes removal of the application more easy, and faster (Delete only a single file.)
Preserves compatibility to the AppDir. (Expand the klik cramfs and you get… a compliant AppDir.)
December 19th, 2006 at 9:51pm
[…] In part 1, I described the problem of software installation on Linux; in part 2, I’ll describe the solution we came up with at the recent LSB Packaging Summit. […]
December 19th, 2006 at 10:28pm
[…] Ian Murdock wrote about Software installation on Linux and mentioned the FSG face2face meeting which took place some days ago in Berlin. The post ends right before the interesting stuff which will be analyzed in a second part. […]
December 20th, 2006 at 10:59am
I agree with the original article. This is a barrier to Windows users adopting Linux. Period.
That said, there are ways to make it better. If you want to see how smooth it SHOULD be for an end user to install software on Linux (commercial or open source), take a look at what My Game Company did with the Linux installer for their recent commercial game “Dirk Dashing: Secret Agent”. It uses Bitrock, along with some custom scripts for installing menu items into the System menu on LSB-compliant distros. You can install their game as root or as a regular user. There’s even an uninstaller. I’ve been able to successfully install this game on SUSE, Fedora, Ubuntu, Linspire, and Debian. From the Bitrock web site, Bitrock appears to be an ideal solution for both commercial and open source projects.
You can download the Dirk Dashing demo from http://www.dirkdashing.com - click on the Try It button, select the Linux version, and follow the install instructions. Beautiful!
December 20th, 2006 at 2:54pm
A few years ago, when I built my first LFS system I wondered that how difficult to add a new “include prefix” to gnu c compiler (also started to compile a system into /linux… frefix). And I asked again and again that why are so many things are “hardwired”.
May I ask a stupid? question?
Why the linux kernel doesn’t contain a small string or variable about used prefixes (like path variable)? “/:/usr:/usr/local”
Paths would be searched on these prefixes; includes; locales; other data files…
We could add new prefixes to the list or remove one.
We could have more prefixes with any permissions for any purposes.
December 20th, 2006 at 6:34pm
Martin,
The Zero Install web-site says for Klik:
Users can install software: Yes
Non-root install of system: No
This agrees with what you said, no?
Presumably fuse, plash and/or ROX application directories could remove this limitation of Klik.
However, Klik isn’t decentralised (there can’t be two different klik packages in the world both called ‘convert’ for example, and if the central server is down then nothing can be installed anywhere in the world).
December 20th, 2006 at 8:10pm
@Thomas Leonard:
The klik web service (just like most web services) isn’t decentralized yet, but of course everyone can make his/her private cmg files available.
Also, a non-root user can unpack a cmg file, and hence can use klik without ever being root (no fstab entries or other tricks required for unpacking a cmg
December 21st, 2006 at 2:31pm
Simon,
I’ve updated the page - thanks. I assumed it needed root because it asks for the root password when you run the installation script, but of course there’s no real reason why that should be necessary.
December 21st, 2006 at 8:32pm
[…] Ian Murdock’s Weblog » Blog Archive » Software installation on Linux: Today, it sucks (part 1) I have a confession to make. Sometimes, when I’m trying out an unfamiliar open source component, I cheat. Even if the software I’m working on will deploy to Linux, I’ll sometimes develop it on Windows first. Why? Because on Windows, an open source component is likely to come with an installer that just works. […]
December 21st, 2006 at 9:44pm
Permafrost91 has got it backwards.
But first, let me say that I hate Microsoft as much as he seems to; really truly I do, for all their evil business practices and the narrow-mindedness of their ‘community’.
BUT….
The one thing they have one right is the concept of intallers. They have created both the expectation and the possibility that someone can install something without having to endlessly twiddle stuff, and it just works at that point.
Never mind that most of their products are mediocre. Bear in mind that the mediocrity is often related to too much complexity and dependencies, but still they have managed to promulgate and realize the idea that things can be installed without requiring deep knowledge of internals.
This is as it should be.
Those who apparently pride themselves on their ability to navigate the arcana of installing Linux and Linux apps completely miss the point. Btw, I have been programming for 40 years on everything from IBM 360 assebmler to Java and PHP and a lot inbetween, including Unix device drivers. But I don’t measure my self worth based on knowing some minutia that will change tomorrow.
Ian has the right attitude: the Linux community needs to get this right if it wants to see mainstread adoption.