0install Reaches 2.0
tal197 writes "Zero Install, the decentralized cross-platform software installation system, announced 0install 2.0 today after 2 years in development. 0install allows authors to publish directly from their own web-sites, while supporting familiar features such as shared libraries, automatic updates, dependency handling and digital signatures. With more than one thousand packages now available, is this finally a viable platform?"
That's 1/9th any kind of milestone I will accept as important or impressive. Come back later.
Finally had enough. Come see us over at https://soylentnews.org/
As the third of tal197's four slashdot submissions was entitled "Zero Install Project Makes 1.0 Release", can I assume this is just an advertisement?
i think the parent was pointing out that apple is never going to allow a 3rd party package manager on ios. because of their success, it looks like the other players (ms, google, etc) are trying to get a similar ecosystem. So, while the project seems like a good idea, the bleak future may be devoid of platforms where such a project could be installed anyway.
It's similar in concept to a decentralized app store or repository. It sounds like a great idea. It sounds like it free your system from the "clutches" of your distro's repository.
But, like many other great ideas, it fails in the cold daylight of reality.
In order for it to work, the software developer has to not only publish their software on the Zero Install system, they have to publish their software for ALL the distros on it. But, we all know well that most software developers regard this as far too cumbersome an undertaking and will instead publish only a single or couple of binaries. That leaves out countless other distros and causes the Zero Install concept to fall apart.
But, there's another issue. Most distro repositories don't simply have 1,000 apps. They have multiple thousands of apps. And all of those apps are compiled specifically for that distro and therefore "guaranteed to work" with your distro.
Simply put Zero Install lacks enough apps, for enough different distros, for anyone to really care about it. It's a niche player in a shrinking pool.
I am reminded of an RPM based alternative package manager distro that was "so much better" and was adoopted by several big players. It might have had live kernel patching too. Yet I cannot remember the name or find it with my Google foo. It was supposed to change everything because it was so much better and, although I'm sure it's still around, "nobody" uses it.
I don't think it is designed to be the one-repository-to-rule-them-all, debian style. In fact I think it is partly a reaction to the fact that that model doesn't work well in many cases.
The technology is interesting. It's fully decentralized, works even on Windows, offers Mac-style drag and drop images, uses a full SAT solver for dependency resolution...
What it needs is better marketing.
I understand the benefits of shared libraries, but storage space is dirt-cheap today and I think a lot of problems might be solved simply by letting lots of pieces of software bundle their favorite versions of dependent libraries.
Or, how about this: Instead of linking to shared libraries by their filenames, applications specify the shared libraries they'd like to link to via md5 hashes of the libraries' contents. The linker checks its shared-library database-index (which could just be a directory whose directory-entries are md5 hash codes) to see if it has a shared library with that md5 hash installed; if yes, it links the application process to it; if no, it auto-downloads the shared library with that hash from the web repository, installs it, and then links the application process to it.
The advantages would be:
No library collisions, ever (well, to the extent that md5 hashes are unique, anyway).
No version mismatches, ever (each app will always run using the libraries it was built against, and no others).
No mucking about with LD_LIBRARY_PATH (as all shared libraries are auto-stored for you
No manually installed missing libraries (they will instead be installed as necesary, on demand)
No space wasted by multiple copies of the same library present on your disk at once
Some possible disadvantages:
No way to "patch" behavior of multiple applications by upgrading only a shared library they link to (you'd have to upgrade each of the applications instead, so that they reference the new library version's md5 hash)
Possible security issues from auto-installing shared libraries with malicious code (although arguably you either trust a developer enough to install his program, or you don't; the mechanics of how different parts of the program are installed aren't necessarily relevant)
I don't care if it's 90,000 hectares. That lake was not my doing.