10INSTALL(1) 0INSTALL(1)
2
3
4
6 0install — a decentralised software installation system
7
8
10 Downloading and running:
11 0install select URI
12
13 0install download URI
14
15 0install run URI [ARG]...
16
17 0install update URI
18
19
20 Other commands:
21 0install config [NAME [VALUE]]
22
23 0install import FEED
24
25 0install list PATTERN
26
27 0install add-feed FEED
28
29 0install remove-feed [INTERFACE] FEED
30
31 0install list-feeds URI
32
33 0install digest DIRECTORY | ARCHIVE [EXTRACT]
34
35
37 Zero Install is a decentralised cross-distribution software installa‐
38 tion system. Programs and libraries are identified by URIs, and there
39 is no need for a central repository. Zero Install ensures that packages
40 cannot conflict with each other and that programs can be shared between
41 mutually untrusting users. See the web-site for more information:
42
43 http://0install.net/
44
45 The simplest case is to ask 0install to run a program, given its URI.
46 For example:
47
48 0install run http://rox.sourceforge.net/2005/interfaces/Edit
49
50
51 The first time you do this, details about available versions of the
52 program are downloaded and cached, along with details about any
53 libraries it depends on.
54
55 Zero Install will run a solver to select the best version of each com‐
56 ponent to use. For example, it will select binaries that are compatible
57 with your CPU and operating system, in your preferred language, and
58 marked "stable" (by default).
59
60 If $DISPLAY is set, 0install will display a window where you can con‐
61 firm (or change) the selected versions.
62
63 It will then download the corresponding archives for those version and
64 store them in the cache too. Each package unpacks to its own directory.
65
66 Finally, 0install will launch the program, setting environment vari‐
67 ables to let it locate its libraries.
68
69
71 The first non-option argument to 0install is the particular sub-command
72 you want to perform; these are described in detail in the next section.
73
74 However, there are some options that apply to all operations. These
75 are:
76
77
78 -c, --console
79 Never use the GUI. Normally, 0launch switches to graphical mode
80 if it needs to download anything from the network (unless DIS‐
81 PLAY is not set).
82
83
84 -h, --help
85 Show the built-in help text.
86
87
88 -o, --offline
89 Run in off-line mode, overriding the default setting. This pre‐
90 vents 0install from checking for updates, and from downloading
91 updates even if it knows about them.
92
93
94 -v, --verbose
95 More verbose output. Use twice for even more verbose output.
96
97
98 --with-store=DIR
99 Append a directory to the list of implementation caches. Each
100 sub-directory of DIR contains the contents of one version of a
101 program or library.
102
103
105 0install select [OPTIONS] URI
106 Select a version of the program identified by URI, and compatible ver‐
107 sions of all of its dependencies. The information about available ver‐
108 sion is downloaded if it's not yet in the cache.
109
110
111 The URI can be either an HTTP URL, such as `http://site/program.xml',
112 or a local path name like `/path/to/program.xml'.
113
114
115 For HTTP URLs, the remote file is a signed XML document. If the key is
116 not known and trusted, you will be prompted to accept it first. Local
117 feed files are not signed (any signature will be ignored).
118
119
120 You can also specificy a local selections document, as created previ‐
121 ously using the --xml option, rather than a feed. In that case,
122 0install simply uses those versions without running the solver.
123
124
125 After selecting (but not downloading) a set of versions, the selection
126 is displayed in a human-readable format. Use --xml to get machine-read‐
127 able output.
128
129
130 If a set of versions cannot be selected using the cached information,
131 0install will check for updates first.
132
133
134 If a set of versions can be selected based on the currently-cached
135 information, but that information is getting stale, 0install will imme‐
136 diately return the current selection and will also start a background
137 process to check for updates. The `freshness' configuration setting
138 controls when cached information is considered to be stale.
139
140
141 Options for select:
142
143
144 --before=VERSION
145 Select a version earlier than VERSION (i.e. force the use of an
146 old version of the program). You can only restrict the version
147 of the program itself using this option, not the version of any
148 dependencies.
149
150
151 --command=COMMAND
152 Some programs provide multiple commands. This selects which one
153 you want. Common values are `run' (the default), `test' (used by
154 0test) and `compile' (used by 0compile). You can also use --com‐
155 mand="" if you don't want to run any command (for example, if
156 the package contains data rather than a program).
157
158
159 --message=MESSAGE
160 If we show a dialog box for the download, display MESSAGE to the
161 user to explain why the download is needed.
162
163
164 --not-before=VERSION
165 The selected version must not be earlier than VERSION. e.g. if
166 you want to run version 2.0 or later, use --not-before=2.0.
167
168
169 --refresh
170 Download a fresh copy of all used feeds before selecting. Nor‐
171 mally, cached copies will be used if available (checking for
172 updates later, in the background).
173
174
175 --source
176 Select source code rather than a binary. This is used internally
177 by `0compile'.
178
179
180 --xml Print the set of chosen implementations as an XML document to
181 stdout. This can be used later with the `download' and `run'
182 sub-commands.
183
184
185
186 `select' returns an exit status of zero if it selected a set of ver‐
187 sions, and a status of 1 if it could not find a consistent set.
188
189
190
191 0install download [OPTIONS] URI
192 This behaves similarly to `0install select', except that it also down‐
193 loads the selected versions if they are not already cached. Unlike
194 `select', it does not print the selected versions by default.
195
196 All options for `select' can also be used for `download'. In addition,
197 these options are available:
198
199
200 --show Print the selected versions in a human-readable format to std‐
201 out.
202
203
204 `download' returns an exit status of zero if it selected a suitable set
205 of versions and they are now all downloaded and in the cache. It
206 returns a status of 1 otherwise.
207
208
209
210 0install run [OPTIONS] URI [ARGS]
211 This behaves similarly to `0install download', except that it also runs
212 the program after ensuring it is in the cache.
213
214
215 To avoid having to keep typing the full URI, use the 0alias(1) command
216 to create shortcuts to run your programs.
217
218
219 All options for `select' and `download' can also be used for `run'. In
220 addition, these options are available:
221
222
223 -m, --main=MAIN
224 Run the specified executable instead of the default. If MAIN
225 starts with '/' then the path is relative to the implementa‐
226 tion's top-level directory, whereas otherwise it is relative to
227 the directory containing the default MAIN program. For example,
228 if the default MAIN is bin/svn then using --main=svnadmin will
229 run .../bin/svnadmin instead. This option has been largely
230 superseded by the newer --command option.
231
232
233 -w, --wrapper=WRAPPER
234 Instead of executing the chosen program directly, run WRAPPER
235 PROGRAM ARGS. This is useful for running debuggers and tracing
236 tools on the program (rather than on 0install!). Note that the
237 wrapper is executed in the environment selected by the program;
238 hence, this mechanism cannot be used for sandboxing. See the
239 DEBUGGING section below.
240
241
242 `run' returns an exit status of 1 if the download step failed. Other‐
243 wise, the exit status will be the exit status of the program being run.
244
245
246 0install update [OPTIONS] URI
247 Check for updates to the program and download them if found. This is
248 similar to 0install download --refresh, except that it prints informa‐
249 tion about whether any changes were found.
250
251
252 The options are the same as for `select'.
253
254
255 0install import FEED
256 Import a feed from a local file, as if it had been downloaded from the
257 network. This is useful when testing a feed file, to avoid uploading
258 it to a remote server in order to download it again. The file must have
259 a trusted digital signature, as when fetching from the network.
260
261
262 It is also useful when installing a feed from a CD or similar. Note: to
263 create a full bundle, for archiving or distribution on CD, see
264 0export(1).
265
266
267 0install add-feed FEED
268 Register an additional source of implementations (versions) of a pro‐
269 gram.
270
271
272 For example, when you check out a developer version of a project, it
273 may contain an XML feed file. To add this version to the list of avail‐
274 able versions, use `add-feed' on the XML file. The file is not copied,
275 so you don't need to re-add the feed each time it is updated. You will
276 probably also want to set the `help_with_testing' configuration option
277 to ensure that testing versions are selected by default.
278
279
280 Note that if you just want to run the program, you can invoke 0install
281 on the feed file directly (without using `add-feed'). This will force
282 the it to use that version, but won't affect what happens when you run
283 it using the URI as normal. Use `add-feed' when you want to use the
284 developer version even when using the URI, or if the program is a
285 library (and thus referenced by URI by other programs).
286
287
288 0install remove-feed [INTERFACE] FEED
289 Un-register a feed, reversing the effect of `add-feed'. If INTERFACE is
290 not given, you will be prompted to choose which INTERFACE to remove it
291 from.
292
293
294 0install list-feeds URI
295 List all extra feeds added to URI using `add-feed'.
296
297
298 0install list PATTERN
299 List all known interface (program) URIs. If a search term is given,
300 only URIs containing that string are shown (case insensitive).
301
302
303 0install config [NAME [VALUE]]
304 View or change configuration settings.
305
306
307 With no arguments, `0install config' displays all configuration set‐
308 tings. With one argument, it displays the current value of the named
309 setting. With two arguments, it sets the setting to the given value.
310
311
312 0install digest DIRECTORY | ARCHIVE [EXTRACT]
313 Calculate the secure hash of an implementation. This is a unique "fin‐
314 gerprint" of a directory and all the files and subdirectories it con‐
315 tains. When publishing a program using 0install, this value must be
316 placed in the XML file.
317
318
319 -m, --algorithm=HASH
320 Select the secure hash function to be used. Supported values are
321 "sha1new" (the default) or "sha256".
322
323
324 If an archive is given then the hash is for the directory that would be
325 created if the archive were unpacked (or the EXTRACT subdirectory of
326 it, if one is specified). See also: 0store(1)'s manifest command.
327
328
329 0install --version
330 This can be used (without any command) the get version of 0install
331 itself:
332
333
335 To debug 0install itself, use the --verbose and --console options. For
336 example:
337
338 $ 0install -vvc run http://myprog
339
340
341 To trace or debug programs run by 0install, use the --wrapper option.
342 For example, to run myprog --help, displaying all calls to open(2):
343
344 $ 0install run --wrapper="strace -e open" http://myprog --help
345
346 If your program is interpreted (e.g. a Python program), and you wish to
347 debug the interpreter running it, you can do it like this:
348
349 $ 0install run --wrapper="gdb --args python" http://myprog --help
350
351
353 Configuration files (see freedesktop.org basedir spec):
354
355
356 ~/.config/0install.net/injector/global
357 Global configuration settings.
358
359
360 ~/.config/0install.net/injector/trustdb.xml
361 List of trusted keys.
362
363
364 ~/.config/0install.net/injector/feeds
365 Per-feed information (e.g. time of last check).
366
367
368 ~/.config/0install.net/injector/interfaces
369 Per-interface settings (preferred stability and any extra feeds
370 that have been registered).
371
372
373 Cached data (can be re-downloaded if lost):
374
375
376 ~/.cache/0install.net/interfaces
377 Downloaded cached feed files.
378
379
380 ~/.cache/0install.net/implementations
381 Downloaded cached implementations, indexed by manifest digest.
382
383
384 See the 0store(1) man page for more information.
385
386
388 Copyright (C) 2010 Thomas Leonard.
389
390
391 You may redistribute copies of this program under the terms of the GNU
392 Lesser General Public License.
393
395 Please report bugs to the developer mailing list:
396
397 http://0install.net/support.html
398
399
401 The Zero Install Injector was created by Thomas Leonard.
402
403
405 0alias(1), 0store(1), 0launch(1)
406
407 The Zero Install web-site:
408
409 http://0install.net
410
411
412
413Thomas Leonard 2011 0INSTALL(1)