0install select URI
0install download URI
0install run URI [ARG]...
0install update URI
0install add NAME URI
0install show NAME
0install update NAME
0install whatchanged NAME
0install destroy NAME
0install config [NAME [VALUE]]
0install import FEED
0install list PATTERN
0install search QUERY
0install add-feed [INTERFACE] FEED
0install remove-feed [INTERFACE] FEED
0install list-feeds URI
0install man COMMAND
0install digest DIRECTORY | ARCHIVE [EXTRACT]
Zero Install is a decentralised cross-distribution software installation system. Programs and libraries are identified by URIs, and there is no need for a central repository. Zero Install ensures that packages cannot conflict with each other and that programs can be shared between mutually untrusting users. See the web-site for more information:
The simplest case is to ask 0install to run a program, given its URI. For example:
0install run http://rox.sourceforge.net/2005/interfaces/Edit
The first time you do this, details about available versions of the program are downloaded and cached, along with details about any libraries it depends on.
Zero Install will run a solver to select the best version of each component to use. For example, it will select binaries that are compatible with your CPU and operating system, in your preferred language, and marked "stable" (by default).
If $DISPLAY is set, 0install will display a window where you can confirm (or change) the selected versions.
It will then download the corresponding archives for those versions and store them in the cache too. Each package unpacks to its own directory.
Finally, 0install will launch the program, setting environment variables to let it locate its libraries.
The first non-option argument to 0install is the particular sub-command you want to perform; these are described in detail in the next section.
However, there are some options that apply to all operations. These are:
Select a version of the program identified by URI, and compatible versions of all of its dependencies. The information about available versions is downloaded if it's not yet in the cache.
For HTTP URLs, the remote file is a signed XML document. If the key is not known and trusted, you will be prompted to accept it first. Local feed files are not signed (any signature will be ignored).
You can also specify a local selections document, as created previously using the --xml option, rather than a feed. In that case, 0install simply uses those versions without running the solver.
After selecting (but not downloading) a set of versions, the selection is displayed in a human-readable format. Use --xml to get machine-readable output.
If a set of versions cannot be selected using the cached information, 0install will check for updates first.
If a set of versions can be selected based on the currently-cached information, but that information is getting stale, 0install will immediately return the current selection and will also start a background process to check for updates. The `freshness' configuration setting controls when cached information is considered to be stale.
Options for select:
`select' returns an exit status of zero if it selected a set of versions, and a status of 1 if it could not find a consistent set.
This behaves similarly to `0install select', except that it also downloads the selected versions if they are not already cached. Unlike `select', it does not print the selected versions by default.
All options for `select' can also be used for `download'. In addition, these options are available:
`download' returns an exit status of zero if it selected a suitable set of versions and they are now all downloaded and in the cache. It returns a status of 1 otherwise.
This behaves similarly to `0install download', except that it also runs the program after ensuring it is in the cache.
To avoid having to keep typing the full URI, use the `0install add' command to create shortcuts to run your programs.
All options for `select' can also be used for `run' except for --xml. In addition, these options are available:
Note that any options after `URI' will be passed to the program being run rather than being interpreted by 0install.
`run' returns an exit status of 1 if the download step failed. Otherwise, the exit status will be the exit status of the program being run.
Check for updates to the program and download them if found. This is similar to 0install download --refresh, except that it prints information about whether any changes were found.
The options are the same as for `select'.
Import a feed from a local file, as if it had been downloaded from the network. This is useful when testing a feed file, to avoid uploading it to a remote server in order to download it again. The file must have a trusted digital signature, as when fetching from the network.
It is also useful when installing a feed from a CD or similar. Note: to create a full bundle, for archiving or distribution on CD, see 0export(1).
Register an additional source of implementations (versions) of a program.
For example, when you check out a developer version of a project, it may contain an XML feed file. To add this version to the list of available versions, use `add-feed' on the XML file. The file is not copied, so you don't need to re-add the feed each time it is updated. You will probably also want to set the `help_with_testing' configuration option to ensure that testing versions are selected by default.
Note that if you just want to run the program, you can invoke 0install on the feed file directly (without using `add-feed'). This will force the it to use that version, but won't affect what happens when you run it using the URI as normal. Use `add-feed' when you want to use the developer version even when using the URI, or if the program is a library (and thus referenced by URI by other programs).
Un-register a feed, reversing the effect of `add-feed'. If INTERFACE is not given, you will be prompted to choose which INTERFACE to remove it from.
List all extra feeds added to URI using `add-feed'.
List all locally-cached interface (program) URIs. If a search term is given, only URIs containing that string are shown (case insensitive).
Send the query string to the mirror server and display any interfaces it returns. Note that the default mirror server indexes all known feeds, regardless of quality; you must decide whether to trust the programs before running them.
View or change configuration settings.
With no arguments, `0install config' displays all configuration settings. With one argument, it displays the current value of the named setting. With two arguments, it sets the setting to the given value.
Show the man-page of the given command. If the single argument COMMAND is a launcher script (created by "0install add") then the man-page is searched for by 0install, otherwise the arguments are passed through directly to the system's man command. This allows you to do:
alias man=0install man --
Calculate the secure hash of an implementation. This is a unique "fingerprint" of a directory and all the files and subdirectories it contains. When publishing a program using 0install, this value must be placed in the XML file.
If an archive is given then the hash is for the directory that would be created if the archive were unpacked (or the EXTRACT subdirectory of it, if one is specified).
These options control whether to display the manifest itself (one line for each file or directory) or the manifest's digest (or both). If neither option is given, the digest is displayed.
An application provides an easy way to run a program without typing the full URL each time.
Creates a new application called NAME (which can be whatever you want) to run the program URI. A directory (by default, ~/.config/0install.net/apps/NAME) is created to record the current selections, as would be produced by "0install select --xml URI".
A launcher command (also called NAME) will be created in $PATH to provide an easy way to run the application. For example, to add and run ROX-Filer:
$ 0install add rox http://rox.sourceforge.net/2005/interfaces/ROX-Filer
If additional requirements are given (as for "0install select", e.g. --before), they are stored with the application and apply to all updates.
Show the current selections for this application (or the contents of the given selections file). By default, the output is in the same format as for "0install select", and the --xml option has the same effect.
The feeds used to make the selections are updated and a new set of selections is generated and saved into the application's directory. Even if you don't run this command explicitly, 0install will check for updates if you run the program and it hasn't been updated for a while. This happens in the background and does not delay starting the program.
If additional requirements are given (as for "0install select", e.g. --before), they update the requirements stored with the application and apply to this and future updates.
Show the differences between the current and previous selections for this application. Various times may also be displayed: "Last checked" is the last time we successfully checked for updates (even if none was found), "Last attempted update" is the last time we tried to check for updates, and "Last update" is the last time changes were found. If "Last attempted update" is shown, then either the last updated failed or an update is currently in progress.
By default, only changes that resulted in a different version being selected are shown. To see all changes, use --full. Note that at most one set of selections is saved per day.
To debug 0install itself, use the --verbose and --console options. For example:
$ 0install -vvc run http://myprog
To trace or debug programs run by 0install, use the --wrapper option. For example, to run myprog --help, displaying all calls to open(2):
$ 0install run --wrapper=strace -e open http://myprog --help
To run the application under the gdb debugger:
$ 0install run --wrapper=gdb --args http://myprog --help
Configuration files (see freedesktop.org basedir spec):
Cached data (can be re-downloaded if lost):
See the 0store(1) man page for more information.
If this is set, then the XDG_ variables are ignored and the configuration and cache are stored in $ZEROINSTALL_PORTABLE_BASE/config and $ZEROINSTALL_PORTABLE_BASE/cache instead.
When 0install wants to add an archive to the cache, it calls this program instead of doing it itself. This is used internally on Windows to connect to some .NET code. It may change in future.
Copyright (C) 2013 Thomas Leonard.
You may redistribute copies of this program under the terms of the GNU Lesser General Public License.
Please report bugs to the developer mailing list:
Zero Install was created by Thomas Leonard, with help from many others. See the Git log for details.
The Zero Install web-site:
Signing in to our system allows you to post your contributions and vote on the contributions of others. It will also allow you to get extra perts like having your favorites in the cloud and having your persistent personal notes wherever you go. More will be added as we scale up our services.
By signing in to our system, you agree our Member Terms and Conditions
Sign-in with one of the following services
Please select a screen name for NET SOUP.