0store — manage the implementation cache
Contents
Add
To add a directory to the store (makes a copy):
0storeaddsha256=XXXdirectory
To add an archive to the store:
0storeaddsha256=XXXarchive.tgz
To add a subdirectory of an archive to the store:
0storeaddsha256=XXXarchive.tgzsubdir
The actual digest is calculated and compared to the given one. If they don't match, the operation is
rejected.
Audit
Verifies every implementation in each of the given cache directories, or in all of the default cache
directories if no arguments are given. This will detect any packages which have been tampered with since
they were unpacked. If 0store itself could have been modified by an attacker, mount the suspect file-
system on a known-good machine and run that machine's 0store on the mounted cache directory.
See the "verify" command below for details of the verification performed on each package.
Bugs
Please report bugs to the developer mailing list:
http://0install.net/support.htmlCommand-Line Options
-h, --help
Show the built-in help text.
-v, --verbose
More verbose output. Use twice for even more verbose output.
-V, --version
Display version information.
Copy
To copy an implementation (a directory with a name in the form "algorithm=value"), use the copy function.
This is similar to performing a normal recursive directory copy followed by a 0storeverify to check that
the name matches the contents. E.g.:
0storecopy~someuser/.cache/0install.net/implementations/sha256=XXX/var/cache/0install.net/implementations/Description
0store provides access to the low-level implementation cache. Normally, the cache is updated
automatically using 0launch(1).
Files
~/.cache/0install.net/implementations Cached implementations, indexed by manifest digest. ~/.config/0install.net/injector/implementation-dirs List of system cache directories, one per line.
Find
To find the path of a stored item:
0storefindsha256=XXXLicense
Copyright (C) 2010 Thomas Leonard.
You may redistribute copies of this program under the terms of the GNU Lesser General Public License.
List
See the list of implementation caches currently configured:
0storelist
To add directories to this list, add them to your 'implementation-dirs' configuration file.
Manage
To open a window showing the contents of the cache:
0storemanage
You can use this to delete versions of programs you no longer need. However, this doesn't remove any
launchers you added (trying to launch the program will prompt you to download the missing files again).
For that, try:
0desktopManifest
Deprecated. Use "0install digest" instead.
Name
0store — manage the implementation cache
Optimise
To hard-link duplicate files together to save space:
0storeoptimise[CACHE]
This reads in all the manifest files in the cache directory (~/.cache/0install.net/implementations by
default) and looks for duplicates (files with the same permissions, modification time and digest). When
it finds a pair, it deletes one and replaces it (atomically) with a hard-link to the other.
Implementations using the old 'sha1' algorithm are not optimised.
See Also
0install(1), 0launch(1), 0store-secure-add(1) The Zero Install web-site: http://0install.net Thomas Leonard 2010 0STORE(1)
Synopsis
0storeaddDIGESTDIRECTORY0storeaddDIGESTARCHIVE [ EXTRACT ]
0storeaudit [ DIRECTORY ... ]
0storecopyDIRECTORY [ DIRECTORY ]
0storefindDIGEST0storelist0storemanifestDIRECTORY [ ALGORITHM ]
0storeoptimise [ CACHE ]
0storeverify ( DIGEST | DIRECTORY )
0storemanageVerify
To check that an item is stored correctly:
0storeverify/path/to/sha256=XXX
This calculates the manifest of the directory and checks that its digest matches the directory's name. It
also checks that it matches the digest of the .manifest file inside the directory. If the .manifest
doesn't correspond to the current tree, it displays a list of the differences (in unified diff format).
