Linked by Tom5 on Tue 24th May 2011 21:13 UTC
Linux Zero Install, the decentralised cross-distribution software installation system, announced 0install 1.0 today, after 8 years in development. 0install allows software developers to publish programs directly from their own web-sites, while supporting features familiar from centralised distribution repositories such as shared libraries, automatic updates and digital signatures. It complements, rather than replaces, the OS's package management. As well as allowing developers to create a single package that works across Linux, BSDs, Mac OS X and Windows, it could help make software available on more minor platforms. OSNews covered decentralised installation systems in 2007.
Permalink for comment 474591
To read all comments associated with this story, please click here.
Tom5
Member since:
2005-09-17

In the end though, wouldn't Zeroinstall have to be feeding an abstraction layer like Android apps requiring Dalvik abstraction on top of the OS? The natural differences between distributions would seem to become an issue otherwise where one distro includes dependencies or versions that another does not?


That's a good question. What happens is that each program specifies what it needs in its XML "feed". For example, a program that requires libexpat1 >= 2.0 might say:

<pre>
<requires interface="http://repo.roscidus.com/lib/expat1">
 <version not-before="2.0"/>
</requires>
</pre>

The expat feed says where to download various versions of the library, and also gives the name of the distribution package for various distributions (actually, the feed currently only gives one package name).

If you run the program on a system where the distribution's package of libexpat1 is installed and has version >= 2.0 then it will use that.

If libexpat isn't installed through the distribution (or it's too old) then 0install may download a newer version to the 0install cache and run the program using that (without affecting other programs, which continue to use the distribution's version).

Or, it might use PackageKit to install or upgrade the distribution package, if a suitable version is available (requires confirmation and admin access).

As the author of the program, all you need to know is that you require libexpat1 >= 2.0. You don't need to know the different names that different distributions use, or whether a 0install package for it will be used.

Reply Parent Score: 1