Don't rely on filesystem's report of symlink length
[zeroinstall/solver.git] / 0launch.1
blobc63f5043c43f5279a8c78743dc68af6bee7af780
1 .TH 0LAUNCH 1 "2009" "Thomas Leonard" ""
2 .SH NAME
3 0launch \- download and run programs by URL
5 .SH SYNOPSIS
7 .B 0launch
8 [\fBOPTION\fP]... \fBINTERFACE\fP [\fBARG\fP]...
10 .B 0launch
11 --list [\fBSEARCH-TERM\fP]
13 .B 0launch
14 --import [\fBINTERFACE-FILES\fP]
16 .SH DESCRIPTION
17 .PP
18 0launch runs a program, identified by an `INTERFACE'. If the program is not
19 already on your computer, it downloads information about which versions are
20 available, and lets you choose one to download. It will also (automatically)
21 do the same for libraries the program needs.
23 .PP
24 0launch will also check for updates if it has been a long time since the last
25 check (configurable).
26 0launch therefore allows users to download and upgrade software without
27 needing root access.
29 .PP
30 An INTERFACE can be either a URL in the form `http://site/program' or
31 a local path name like `/path/to/program.xml'. For HTTP URLs, the remote
32 file is a GPG-signed XML document. Local interface files are not signed.
34 .SH EXAMPLES
36 .PP
37 When a program is available using 0launch, it will have an associated URL. To
38 run the program, simply invoke 0launch with this as an argument:
40 .B 0launch http://rox.sourceforge.net/2005/interfaces/Edit
42 .PP
43 The first time you do this, details about the program are downloaded and
44 cached, and you will be prompted to confirm the versions to use. In future,
45 the program will run directly from the cache without confirmation.
47 .PP
48 To check for new versions:
50 .B 0launch --refresh http://rox.sourceforge.net/2005/interfaces/Edit
52 .PP
53 To search the list of cached URLs:
55 .B 0launch --list Edit
57 .PP
58 To avoid having to keep typing the full URI, use the 0alias(1) command
59 to create shortcuts to run your programs.
61 .SH COMMAND-LINE OPTIONS
63 .TP
64 \fB--before=VERSION\fP
65 Choosen implementation's version number must be earlier than VERSION. i.e., force
66 the use of an old version the program.
68 .TP
69 \fB-c\fP, \fB--console\fP
70 Never use the GUI. Normally, 0launch switches to graphical mode if it needs to
71 download anything from the network (unless DISPLAY is not set).
73 .TP
74 \fB-d\fP, \fB--download-only\fP
75 Download any needed files, but stop before actually running the program.
77 .TP
78 \fB-D\fP, \fB--dry-run\fP
79 Just print what actions would be taken.
81 .TP
82 \fB-f\fP, \fB--feed\fP
83 Register (or unregister) an additional source of implementations. When you get
84 a CVS version of a project, it may contain an interface XML file. To add this
85 version to the list of available versions, use --feed on this XML file. The
86 file is not copied, so you don't need to re-add the file each time it is
87 updated.
89 Note that if you just want to run the program, you can invoke 0launch on the
90 interface file directly (without using --feed). This will force the injector to
91 use that version, but won't affect what happens when you run it using the URI
92 as normal. Use --feed when you want to use the CVS version even when using the
93 URI, or if the program is a library (and thus referenced by URI by other
94 programs).
96 Note also that the stability of CVS versions may be set to 'developer', in
97 which case you must set this as the preferred stability for the interface
98 (using the GUI).
101 \fB--get-selections\fP
102 Instead of running the program, just print the set of chosen implementations as
103 an XML document to stdout. This can be used later with \fB--set-selections\fP.
106 \fB-g\fP, \fB--gui\fP
107 Show the graphical policy editor. This allows you to select which version of
108 a program or library to use.
111 \fB-h\fP, \fB--help\fP
112 Show the built-in help text.
115 \fB-i\fP, \fB--import\fP
116 Import from files, not from the network. This is useful when testing an
117 interface file, to avoid uploading it to a remote server in order to download
118 it again. It might also be useful when installing from a CD or similar.
119 The file must have a trusted GPG digital signature, as when fetching from
120 the network. For unsigned interfaces, see --feed.
123 \fB-l\fP, \fB--list\fP
124 List all known interface (program) URIs. If a search term is given, only
125 URIs containing that string are shown (case insensitive).
128 \fB-m\fP, \fB--main=MAIN\fP
129 Run the specified executable instead of the default. If MAIN starts with '/'
130 then the path is relative to the implementation's top-level directory,
131 whereas otherwise it is relative to the directory containing the default
132 MAIN program. For example, if the default MAIN is \fBbin/svn\fP then
133 using \fB--main=svnadmin\fP will run \fB.../bin/svnadmin\fP instead.
136 \fB--not-before=VERSION\fP
137 Choosen implementation's version number must not be earlier than VERSION.
138 E.g., if you want to run version 2.0 or later, use \fB--not-before=2.0\fP.
141 \fB-o\fP, \fB--offline\fP
142 Run in off-line mode, overriding the default setting. In off-line mode, no
143 interfaces are refreshed even if they are out-of-date, and newer versions of
144 programs won't be downloaded even if the injector already knows about them
145 (e.g. from a previous refresh).
148 \fB-r\fP, \fB--refresh\fP
149 Fetch a fresh copy of all used interfaces. This will normally switch to GUI
150 mode, unless --console is also given. Note that using --refresh and --gui
151 together will check for updates to the GUI itself.
154 \fB--set-selections=FILE\fP
155 Instead of choosing suitable implementations using the policy, run exactly
156 the versions given in FILE. A suitable file can be created using the
157 \fB--get-selections\fP option described above.
160 \fB-s\fP, \fB--source\fP
161 The implementation of the main (root) interface must have an architecture
162 of the form '*-src' (normally a literal "*", but could be a compatible OS).
163 Dependencies are normal implementations, not source ones.
166 \fB-v\fP, \fB--verbose\fP
167 More verbose output. Use twice for even more verbose output.
170 \fB-V\fP, \fB--version\fP
171 Display version information.
174 \fB-w\fP, \fB--wrapper=COMMAND\fP
175 Instead of executing the chosen program directly, run \fBCOMMAND PROGRAM ARGS\fP.
176 This is useful for running debuggers and tracing tools on the program (rather
177 than on 0launch!). Note that the wrapper is executed in the environment selected
178 by the program; hence, this mechanism cannot be used for sandboxing. See the
179 DEBUGGING section below.
182 \fB--with-store=DIR\fP
183 Append a directory to the list of implementation caches.
185 .SH DEBUGGING TIPS
188 To debug 0launch itself, use the --verbose and --console options. For example:
190 .B $ 0launch -vvc http://myprog
193 To trace or debug programs run by 0launch, use the --wrapper option.
194 For example, to run \fBmyprog --help\fP, displaying all calls to open(2):
196 .B $ 0launch --wrapper="strace -e open" http://myprog --help
198 If your program is interpreted (e.g. a Python program), and you wish to debug
199 the interpreter running it, you can do it like this:
201 .B $ 0launch --wrapper="gdb --args python" http://myprog --help
203 .SH FILES
205 Configuration files (see freedesktop.org basedir spec):
207 .IP "~/.config/0install.net/injector/global"
208 Global configuration settings.
210 .IP "~/.config/0install.net/injector/trust"
211 List of trusted keys.
213 .IP "~/.config/0install.net/injector/user_overrides"
214 Per-interface settings, and extra feeds.
217 Cached data (can be re-downloaded if lost):
219 .IP "~/.cache/0install.net/interfaces"
220 Downloaded cached interface files.
222 .IP "~/.cache/0install.net/implementations"
223 Downloaded cached implementations, indexed by manifest digest.
226 See the 0store(1) man page for more information.
228 .SH LICENSE
230 Copyright (C) 2009 Thomas Leonard.
233 You may redistribute copies of this program under the terms of the GNU Lesser General Public License.
234 .SH BUGS
236 Please report bugs to the developer mailing list:
238 http://0install.net/support.html
240 .SH AUTHOR
242 The Zero Install Injector was created by Thomas Leonard.
244 .SH SEE ALSO
245 0alias(1), 0store(1)
247 The Zero Install web-site:
249 .B http://0install.net