10STORE(1) 0STORE(1)
2
3
4
6 0store — manage the implementation cache
7
8
10 0store add DIGEST DIRECTORY
11
12 0store add DIGEST ARCHIVE [ EXTRACT ]
13
14 0store audit [ DIRECTORY ... ]
15
16 0store copy DIRECTORY [ DIRECTORY ]
17
18 0store find DIGEST
19
20 0store list
21
22 0store manifest DIRECTORY [ ALGORITHM ]
23
24 0store optimise [ CACHE ]
25
26 0store verify ( DIGEST | DIRECTORY )
27
28 0store manage
29
30
32 0store provides access to the low-level implementation cache. Normally,
33 the cache is updated automatically using 0launch(1).
34
35
37 To add a directory to the store (makes a copy):
38
39 0store add sha256=XXX directory
40
41
42 To add an archive to the store:
43
44 0store add sha256=XXX archive.tgz
45
46
47 To add a subdirectory of an archive to the store:
48
49 0store add sha256=XXX archive.tgz subdir
50
51
52 The actual digest is calculated and compared to the given one. If they
53 don't match, the operation is rejected.
54
55
57 Verifies every implementation in each of the given cache directories,
58 or in all of the default cache directories if no arguments are given.
59 This will detect any packages which have been tampered with since they
60 were unpacked. If 0store itself could have been modified by an
61 attacker, mount the suspect file-system on a known-good machine and run
62 that machine's 0store on the mounted cache directory.
63
64
65 See the "verify" command below for details of the verification per‐
66 formed on each package.
67
68
70 To copy an implementation (a directory with a name in the form "algo‐
71 rithm=value"), use the copy function. This is similar to performing a
72 normal recursive directory copy followed by a 0store verify to check
73 that the name matches the contents. E.g.:
74
75 0store copy ~someuser/.cache/0install.net/implementations/sha256=XXX
76 /var/cache/0install.net/implementations/
77
78
80 To find the path of a stored item:
81
82 0store find sha256=XXX
83
84
86 See the list of implementation caches currently configured:
87
88 0store list
89
90 To add directories to this list, add them to your 'implementation-dirs'
91 configuration file.
92
93
95 To open a window showing the contents of the cache:
96
97 0store manage
98
99 You can use this to delete versions of programs you no longer need.
100 However, this doesn't remove any launchers you added (trying to launch
101 the program will prompt you to download the missing files again). For
102 that, try:
103
104 0desktop --manage
105
106
108 To generate the manifest for a directory structure:
109
110 0store manifest DIRECTORY [ALGORITHM]
111
112
113 The manifest lists every file and directory in the tree, along with the
114 digest of each file, thus uniquely identifying that particular set of
115 files. After the manifest, the last line gives the digest of the mani‐
116 fest itself.
117
118
119 This value is needed when creating feed files. However, the 0publish
120 command will automatically calculate the required digest for you and
121 add it to a feed file. See the packager's guide on the Zero Install web
122 site for details.
123
124 Supported algorithms are 'sha1' (supported by all versions), 'sha1new'
125 (requires injector 0.20 or later) and 'sha256' (requires injector 0.20
126 or later AND the Python hashlib module).
127
128
130 To hard-link duplicate files together to save space:
131
132 0store optimise [CACHE]
133
134
135 This reads in all the manifest files in the cache directory
136 (~/.cache/0install.net/implementations by default) and looks for dupli‐
137 cates (files with the same permissions, modification time and digest).
138 When it finds a pair, it deletes one and replaces it (atomically) with
139 a hard-link to the other.
140
141
142 Implementations using the old 'sha1' algorithm are not optimised.
143
144
146 To check that an item is stored correctly:
147
148 0store verify /path/to/sha256=XXX
149
150 This calculates the manifest of the directory and checks that its
151 digest matches the directory's name. It also checks that it matches the
152 digest of the .manifest file inside the directory. If the .manifest
153 doesn't correspond to the current tree, it displays a list of the dif‐
154 ferences (in unified diff format).
155
156
158 -h, --help
159 Show the built-in help text.
160
161
162 -v, --verbose
163 More verbose output. Use twice for even more verbose output.
164
165
166 -V, --version
167 Display version information.
168
169
171 ~/.cache/0install.net/implementations
172 Cached implementations, indexed by manifest digest.
173
174
175 ~/.config/0install.net/injector/implementation-dirs
176 List of system cache directories, one per line.
177
178
180 Copyright (C) 2010 Thomas Leonard.
181
182
183 You may redistribute copies of this program under the terms of the GNU
184 Lesser General Public License.
185
186
188 Please report bugs to the developer mailing list:
189
190 http://0install.net/support.html
191
192
194 The Zero Install Injector was created by Thomas Leonard.
195
196
198 0alias(1), 0launch(1), 0store-secure-add(1)
199
200 The Zero Install web-site:
201
202 http://0install.net
203
204
205
206Thomas Leonard 2010 0STORE(1)