Zero Install and AddApp

When you run a launcher from the ROX-All package, or a launcher created by AddApp, you are just executing a small script of the form (for ROX-Filer, in this example):


What does this do?

Ignoring the cache for now, it downloads the named resource from the web (you can view it in your browser if you want). This file lists all available versions of ROX-Filer. For each one, it says where it can be downloaded. The 0launch command prompts you to pick one (the default is the newest one), downloads it and runs it.

Isn't it wasteful and slow to keep re-downloading software?
To make this fast, both the page listing the versions and the software itself are stored on your local computer (by default, under ~/.cache/ The next time you run it, it won't need to use the network at all.
Why is it called Zero Install?
Because you don't ask the computer to install software. You ask it to run it. Having it stored on your computer is an automatic side-effect.
What security features does it offer?
The list of versions is signed with GPG. If the key isn't known, you'll be prompted to confirm that you trust it.
The list includes cryptographic digests of each version, so the archives get checked too after they're unpacked.
Everything happens as a normal user, not as root, so there is less risk of users harming each other by running dodgy software.
What about programs that require lots of libraries?
As well as the main file listing all versions of the software, it also states what libraries each one requires. The 0launch command will download those and add them to the cache too.
Will this conflict with other software on my system?
In general, no. 0launch only puts things in your ~/.cache/ directory (nowhere else), with a different sub-directory for every version it downloads. Of course, as with any software, actually running the programs themselves may affect your system... that depends what you choose to run ;-)
I tried Zero Install, and now ROX-Session keeps trying to download programs I already have!
ROX-Session supports both traditional packages (e.g., running ROX-Filer with /usr/bin/rox) and Zero Install (using 0launch). By default, if it sees that the 0launch command is available then it will use that. To avoid downloading a second copy of ROX-Filer, you can use 0launch --feed /path/to/ROX-Filer.xml to tell 0launch about your existing copy. Having two copies on your system shouldn't cause any problems, however. Also, newer versions of 0launch are able to use distribution packages when available.
Do I have to use Zero Install to get ROX?
No, there are many ways to get the software. You can download the archives and extract them manually if you prefer, and there are packages available for various distributions. However, using Zero Install does mean you get exactly the same software we released, makes it easier for us to track down problems (we know they can't have been introduced by the packagers) and means you always have the latest version available (in addition to the advantages listed above). A few things don't work fully without it (for example, clicking on the Edit MIME rules button in ROX-Filer's Options box will run MIME-Editor if 0launch is available, or just tell you where to download MIME-Editor if not).
What does Can't find all required implementations mean?
It means that the injector couldn't find a suitable version of some component needed to run the program. Usually, this is either because you haven't run the program before and you've selected offline mode, or you have an unusual architecture for which there is currently no binary (see the ROX-Filer binary tutorial for how to compile from source). If you have any problems, please read the injector's trouble-shooting guide.
Sounds interesting... where can I learn more?
See the site for details. Also, the Decentralised Installation Systems essay gives an introduction to systems like Zero Install.