Point-and-klik Linux Software Installation?
bfree continues: This is not the only change in klik recently however, now applications are built into compressed image (cmg) files rather then stored as application directories. This means that you can store the application on any filesystem and move it around at will. Klik no longer totally depends on kde. Where previously klik could only be used with konqueror, now you can also use firefox and elinks, and where previously kdialog was required, now any of dialog|Xdialog|kdialog should work.
Klik now also supports more distributions fully. The officially supported list of distributions is now Knoppix (3.7), Kanotix (BHX), Linspire 5.0 and Simply Mepis (2004.04). Klik assumes that you will have installed at least the lowest version of any package which is present in all supported distributions and build the applications as such. If a package you want klik to install depends on a package in this base system it will not be included in the cmg so you must have it installed or add it to the cmg by hand afterwards. If you want to try using klik on another distribution, your results will primarily depend on whether or not your distribution has the packages the cmg depends on and assumes are present. So you will certainly fail to install kde applications on a distribution with no kde (as all the supported distributions have kde), but programs with simpler, or less common and therefore missing from some supported distributions, dependencies can work just fine.
One of the best ways to demonstrate the power of klik's techiniques is with the Christmas present from probono, an OpenOffice.org cmg for version 1.9.65. With this cmg (which runs on far more distributions then klik's supported list, especially as it uses Linux transparent iso compression rather then cramfs) you can download one 100M file to try out the preview release of Ooo, no need to upgrade any parts of your system and if the system has been setup by root to use cmg files there is also no need to even be root. I think this demonstrates the very best feature of bundled applications, you can try a potentially reckless preview release of software without having to upgrade your system.
What's wrong with that?
Sure you can be opposed that's fine but nobody's telling you to go for it or nobody's telling the guys at gentoo "ok, follow the klik's way!"
It's simply more choices and the ones who will prefer this are the migrating users who come from windows. They have to point & click the most possible to get confortable with an o/s environment.
Indeed, using Opera on Debian Sid, I get the 'unsupported operating system' error only when the user agent is set to IE. Opera users: press F12 to change it to Mozilla, for this site.
I have read through the docs, but I can't find any indication of how klik really works. Clearly the cmg file has to be mounted somewhere. I found references to the overlay file system (which linus refuses to integrate). Does the cmg file get mounted somehow (with a root helper) and overlayed on the root file system? cmg files seem to be created from binary deb files, so I don't imagine they are recompiled to look for their files elsewhere (say $HOME/etc or something).
I believe this klik system could have real application across all kinds of distros, even RPM-based. However klik still doesn't truely offer (due to how linux works) apps that are dependency free. For example the galeon.cmg would still require mozilla and a few other things. I suppose they could make each cmg independent, but then we'd have tons of glibc's in memory, plus multiple copies of gtk, etc. How do they get around this issue?
It appears the main target of klik is to allow the downloading and running of software in a liveCD environment. How will this work in a real environment?
Being a Windows user and being interested in Linux are not mutually exclusive things.
I first tried Linux back in high school after hearing about it from friends and even bought a copy of Red Hat Linux 6.2. I've installed Slackware after seeing it mentioned a lot on the Internet, and Gentoo I discovered one day probably through Slashdot, and after reading their installation guide I thought "cool, I'll give it a try." In fact, I'm downloading GoboLinux right now after being reminded of it through the last link in this story.
Exposure is a good thing. You can't gain supporters if you deny potential supporters the chance of learning about you. And yeah, I'm a Windows user.
You see it from the user's perspective. Thats fine but to create a new way of installing software you have to see the problems with the existing ways. The major problem with OS X Style program installation (and windows installers most of the time) is that they all contain every library they use. This leads to duplicated (in memory, where this is important) libraries and more important to outdated versions of libraries that might contain old security holes. Linux dependency tracking software installation approach is superior to these two forms but it clearly is much more difficult to do dependency resolution without a central repository (basically the lack of a common way of naming things makes decentralized dependencies difficult). The Installation System on Linux needs work but it shouldn't go in the direction of Windows and/or Mac from the Developer Perspective even though the result might feel similar from the Point of View of a User.
Linux is not Windows
I personally disagree with your above assessment -- the Mac OS X style of program installation and packaging is exactly what Linux should be striving for. In this configuration, a single application package can contain executable forks for multiple operating systems/distributions in a single package, which can be stored in a disk image and "installed" merely by dragging and dropping it into its target directory. Everything that is part of the program is then part of the package itself -- there is no need for an application to pollute the rest of the system by dropping files all over the place. Deletion is as simple as deleting the program icon/directory, and presto -- it's gone.
I think I've already written on tract about different systems for handling installation, and the pros and cons thereof, but that was in comparison to Windows. It looks as if it is time to discuss MacOS X.
Yes the OS X system is beguilingly simple in its ease of use. Drag and drop, multiple architectures in one package, no files strewn across the file system for each package, clean and simple. This does have its drawbacks though. One drawaback is shared libraries. MacOS X largely gets around this issue by having a huge monoloithic, heavily standardised base set of libraries to do, well, most everything. That core set of libraries is religiously controlled by Apple, and no one tinkers or changes it unless they buy the latest upgrade from Apple. That means application developers have a nice fixed set of shared libraries they can link to without having to worry about dependencies. Of course, anything outside that base set of libraries either has to reinvent the wheel each time, or have multiple copies of the same library not being shared between apps. Multiple copies of the same library has a few problems, the biggest being that it tends to hog more RAM than needed, and for security purposes there's no central place to upgrade/fix the library. Still the end result still works pretty well, and as you say, it's a ncie system to use. It is worth noting, however, that Apple themselves are moving away from App Folders and tend to have installer programs for even their own applications now.
So why can't Linux just do like Apple? There is no core set of libraries that everyone can be fully expected to have. Contrary to popular opinion this is less to do with the "Desktop War" between GNOME and KDE, and more to do with the release early, release often philosophy of open source. New versions of widget toolkits, CD backend libraries, and who knows what come out with startling regularity: Core libraries are a moving target. This is, of course, good in that open source software is continuing to advance and improve at a very impressive rate, and everyone can develop against the very latest if they want to. It's bad for installers though, because you don't have a 100% locked down "This Is How It Shall Be" set of shared libraries. This will not change. Open source is always going to be release early, release often, and developers of open source apps are always going to try and develop against the cutting edge of code. At the same time, because there is so much code out there, freely redistributable, there is a lot more shared code, and hence a lot more shared libraries that cover all manner of obscure things. Again, that's good, but again, its an issue for installation. That won't change either though - this is open source, so everything will be open and code reuse will be rampant (that's part of the point really!).
At it's core open source simply has philosophic issues that make App Folders something that just won't fit in with the open source world. Don't despair though, there's no reason a drag and drop front end that makes RPMs or DEBs look like App Folders can't be written - it simply interacts with the package database instead of directly with the filesystem. The visible results for users can be made to look identical.
As to how to actually handle software installation
Craft Beer Programming T-shirts
completely missed the point.
Then we're talking around each other, because you seem to have missed my point.
Debian's "easy" system isn't easy because of its size (as the autopackage faq suggests) but rather because of their strict adherence to policy standards.
We're talking about installing some software. It is "easy" to install software on Debian if it is in the Debian package repository. If it is not, then how exactly are you planning on installing it? Compile from source? Not "easy". Download a third party provided DEB package? That ought to work, but that's hardly easy for the developer who has to provide a DEB package, a Fedora RPM, a SuSE RPM, a mandrake RPM etc., and then there's the issue that maybe the DEB was for Ubuntu and linked against some libraries in Ubuntu that aren't in Debian stable yet. In short, installing software that is not in Debian's repositories is hard. This mostly doesn't matter because Debian's repositories are BIG so the odds of wanting to install something that isn't there are rather small.
You can discuss policy standards all you like, but in the end if the software isn't in Debian, it isn't likely to be following those standards.
Let's be clear anyway: Autopackage is not a replacement for dpkg, apt, and all the usual Debian goodness. It is complementary to all of that, and is meant to provide an easy way for those "not in the Debian repository" packages to still be easy to install (and at the same time allow developers to package once, instead of "once for each distribution").
And you've missed a different point. klik-style packages ideally are to be installed by end users, not administrators.
Autopackage is about empowering users not just administrators. A user can go to the homepage for [insert random application here], download the autopackage file provided there by the developers, then just double click to run it and up comes a little installer that checks and resolves dependencies. One of the key points of Autopackage is for binaries to be relocatable. That means a non-root user can still install an autopackaged file - it just gets installed to their home directory instead of systemwide. Autopackage is not meant to manage a distribution - Debian and Redhat and SuSE already do that pretty well. It is about providing a way for extra third party application not already in the distribution to be easily installed by users.
Jedidiah.
Craft Beer Programming T-shirts
That's what we like about generating Windoze executables with Delphi. It has a smart linker so it only links in the library routines it actually uses and produces one EXE file for the program. This EXE will run correctly on anything from '98 to XP without change. When the Linux community finally decides on ONE executable format that will run on just about any Linux installation, then they might have something.