NAME
0launch — download and run programs by URL
SYNOPSIS
0launch [OPTION]... INTERFACE [ARG]...
0launch --list [SEARCH-TERM]
0launch --import [FEED-FILES]
DESCRIPTION
0launch runs a program, identified by an ‘INTERFACE’. If the program is
not already on your computer, it downloads information about which
versions are available, and lets you choose one to download. It will
also (automatically) do the same for libraries the program needs.
0launch will also check for updates if it has been a long time since
the last check (configurable).
Normally, INTERFACE is taken as a FEED, which can be either a URL in
the form ‘http://site/program’ or a local path name like
‘/path/to/program.xml’. For HTTP URLs, the remote file is a GPG-signed
XML document. Local feed files are not signed. The default one-to-one
mapping from interface URIs to feed URLs can be changed using the
--feed option.
EXAMPLES
When a program is available using 0launch, it will have an associated
URL. To run the program, simply invoke 0launch with this as an
argument:
0launch http://rox.sourceforge.net/2005/interfaces/Edit
The first time you do this, details about the program are downloaded
and cached, and you will be prompted to confirm the versions to use. In
future, the program will run directly from the cache without
confirmation.
To check for new versions:
0launch --refresh http://rox.sourceforge.net/2005/interfaces/Edit
To search the list of cached URLs:
0launch --list Edit
To avoid having to keep typing the full URI, use the 0alias(1) command
to create shortcuts to run your programs.
COMMAND-LINE OPTIONS
--before=VERSION
Chosen implementation’s version number must be earlier than
VERSION. i.e., force the use of an old version the program.
-c, --console
Never use the GUI. Normally, 0launch switches to graphical mode
if it needs to download anything from the network (unless
DISPLAY is not set).
-d, --download-only
Download any needed files, but stop before actually running the
program.
-D, --dry-run
Just print what actions would be taken.
-f, --feed
Register (or unregister) an additional source of
implementations. 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 --feed on this XML file. The
file is not copied, so you don’t need to re-add the file each
time it is updated.
Note that if you just want to run the program, you can invoke
0launch on the feed file directly (without using --feed). This
will force the injector to use that version, but won’t affect
what happens when you run it using the URI as normal. Use --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).
--get-selections
Instead of running the program, just print the set of chosen
implementations as an XML document to stdout. This can be used
later with --set-selections. Use --select-only if you don’t
even want to download the packages.
-g, --gui
Show the graphical policy editor. This allows you to select
which version of a program or library to use.
-h, --help
Show the built-in help text.
-i, --import
Import from files, not 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. It might also be useful when
installing from a CD or similar. The file must have a trusted
GPG digital signature, as when fetching from the network. For
unsigned interfaces, see --feed.
-l, --list
List all known interface (program) URIs. If a search term is
given, only URIs containing that string are shown (case
insensitive).
-m, --main=MAIN
Run the specified executable instead of the default. If MAIN
starts with ’/’ then the path is relative to the
implementation’s top-level directory, whereas otherwise it is
relative to the directory containing the default MAIN program.
For example, if the default MAIN is bin/svn then using
--main=svnadmin will run .../bin/svnadmin instead.
--not-before=VERSION
Chosen implementation’s version number must not be earlier than
VERSION. E.g., if you want to run version 2.0 or later, use
--not-before=2.0.
-o, --offline
Run in off-line mode, overriding the default setting. In off-
line mode, no interfaces are refreshed even if they are out-of-
date, and newer versions of programs won’t be downloaded even if
the injector already knows about them (e.g. from a previous
refresh).
-r, --refresh
Fetch a fresh copy of all used interfaces. This will normally
switch to GUI mode, unless --console is also given.
--select-only
Download any required feeds and choose a set of implementations,
but don’t actually download them. If there are stale feeds,
check for updates first (if we’re not off-line).
--set-selections=FILE
Instead of choosing suitable implementations using the policy,
run exactly the versions given in FILE. A suitable file can be
created using the --get-selections option described above.
-s, --source
The implementation of the main (root) interface must have an
architecture of the form ’*-src’ (normally a literal "*", but
could be a compatible OS). Dependencies are normal
implementations, not source ones. See 0compile for details.
-v, --verbose
More verbose output. Use twice for even more verbose output.
-V, --version
Display version information.
-w, --wrapper=COMMAND
Instead of executing the chosen program directly, run COMMAND
PROGRAM ARGS. This is useful for running debuggers and tracing
tools on the program (rather than on 0launch!). Note that the
wrapper is executed in the environment selected by the program;
hence, this mechanism cannot be used for sandboxing. See the
DEBUGGING section below.
--with-store=DIR
Append a directory to the list of implementation caches.
DEBUGGING TIPS
To debug 0launch itself, use the --verbose and --console options. For
example:
$ 0launch -vvc http://myprog
To trace or debug programs run by 0launch, use the --wrapper option.
For example, to run myprog --help, displaying all calls to open(2):
$ 0launch --wrapper="strace -e open" http://myprog --help
If your program is interpreted (e.g. a Python program), and you wish to
debug the interpreter running it, you can do it like this:
$ 0launch --wrapper="gdb --args python" http://myprog --help
FILES
Configuration files (see freedesktop.org basedir spec):
~/.config/0install.net/injector/global
Global configuration settings.
~/.config/0install.net/injector/trustdb.xml
List of trusted keys.
~/.config/0install.net/injector/user_overrides
Per-interface settings, and extra feeds.
Cached data (can be re-downloaded if lost):
~/.cache/0install.net/interfaces
Downloaded cached feed files.
~/.cache/0install.net/implementations
Downloaded cached implementations, indexed by manifest digest.
See the 0store(1) man page for more information.
LICENSE
Copyright (C) 2010 Thomas Leonard.
You may redistribute copies of this program under the terms of the GNU
Lesser General Public License.
BUGS
Please report bugs to the developer mailing list:
http://0install.net/support.html
AUTHOR
The Zero Install Injector was created by Thomas Leonard.
SEE ALSO
0alias(1), 0store(1)
The Zero Install web-site:
http://0install.net