This project is a fork of the zeroinstall.git project. If you have that one already cloned locally, you can use
git clone --reference /path/to/your/zeroinstall.git/incarnation mirror_URL
to save bandwidth during cloning.
descriptionBranch of Zero-Install to support filename substitution
homepage URL
last changeTue, 4 Nov 2008 19:28:22 +0000 (4 19:28 +0000)
content tags
The Zero Install Injector

Copyright Thomas Leonard, 2008


A program is made up of many different components, typically written by
different groups of people. Each component is available in multiple versions.
The injector is used when starting a program. Its job is to decide which
implementation of each required component to use.

An interface describes what a component does. The injector starts with the
interface for the program you want to run (like 'The Gimp') and chooses an
implementation (like 'The Gimp 2.2.0'). However, this implementation will in
turn depend on other interfaces, such as 'GTK' (which draws the menus and
buttons). Thus, the injector must choose implementations of each dependancy
(each of which may require further interfaces, and so on).

See for details.


The injector uses the normal Python distutils method of installation. To
install, become root and run like this:

  $ su
  [ enter root password ]
  # python install
  # exit


To run a program by its URI:

$ 0launch

To run create short-cut:

$ 0alias rox-edit

For more information, see the man-pages for 0launch, 0alias and 0store.


This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA


Please report any bugs to the mailing list:
2008-11-04 Mark SeabornCatch cyclic dependency graphs and give a nice error... master
2008-11-03 Mark SeabornSmall simplification
2008-11-03 Mark SeabornHandle rewrites when serialising selections to XML...
2008-11-03 Mark SeabornRefactor tests to use the Selections object instead...
2008-11-03 Mark SeabornFactor out some common code in the tests
2008-11-02 Mark SeabornMemoize _get_implementation_path2 to avoid taking expon...
2008-11-02 Mark SeabornFix handling of more complex dependencies
2008-11-02 Mark SeabornFix rewrites in binary data: avoid Unicode strings
2008-11-02 Mark SeabornUse fixed-length filenames when rewriting filenames
2008-11-02 Mark SeabornAdd support for self-rewrites: <rewrite> not inside...
2008-11-02 Mark SeabornImplement <rewrite> element for doing substitutions...
2008-11-02 Mark SeabornUnify's two execution paths, for Policy and...
2008-11-02 Mark SeabornAdd test for setting self-referencing environment variables
2008-11-02 Mark SeabornAdd explicit environ arguments to functions in run...
2008-11-02 Mark SeabornAdd test with an example of a feed with a dependency
2008-11-02 Mark SeabornRequire tests to declare whether they change os.environ
7 years ago master