10INSTALL(1)                                                        0INSTALL(1)
2
3
4

NAME

6       0install — a decentralised software installation system
7
8

SYNOPSIS

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

DESCRIPTION

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

GLOBAL OPTIONS

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

SUB-COMMANDS

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

DEBUGGING TIPS

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

FILES

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

LICENSE

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

BUGS

395       Please report bugs to the developer mailing list:
396
397       http://0install.net/support.html
398
399

AUTHOR

401       The Zero Install Injector was created by Thomas Leonard.
402
403

SEE ALSO

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)
Impressum