]> pd.if.org Git - zpackage/blob - doc/zpm.8
cb36c21f0e76580097fc312c9099e1bd8c4dc687
[zpackage] / doc / zpm.8
1 .TH zpm 8 2018-12-07 "ZPM 0.3"
2 .SH NAME
3 zpm \- the ultimate package manager
4 .SH SYNOPSIS
5 .B zpm
6 [
7 .I \-P path
8 ]
9 .I command
10 .i options
11 .SH DESCRIPTION
12 zpm is the ultimate package manager.
13 The zpm program itself searches the pathfor zpm sub-commands to run.
14 Sub-commands will either be statically linked compiled programs.
15 .PP
16 ZPM stores packages and package information in zpm databases, which
17 are sqlite3 databases with an application id of 0x5a504442.  The
18 current user_version is 1.  Both packages and information about installed
19 package are stored in zpm databases, with an identical database schema.
20 The difference between them is in how they are used and what they
21 typically contain.
22 .SS Package Names
23 .PP
24 Packages are identified by a name-version-release triple.
25 .PP
26 The name is the general name of the package, which must start with a letter,
27 and may contain letters, numbers, or a '-'.
28 .PP
29 The version must start with a numeral, and may contain numerals, letters, and
30 '.'.  The version generally matches the upstream version of the software
31 in the package, but may be different due to the format requirements or
32 as assigned by the packager.
33 .PP
34 The release is a decimal integer assigned by the packager.
35 .PP
36 Usually a package may be specified by name or name and version if those
37 are unique for the context.
38 .SS Package Metadata
39 .PP
40 Package metadata is collected into stream and hashed with sha256 to
41 create a package hash.  This hash may be verified by the admin,
42 and may be signed by the packager.
43 .SS Package Signing
44 .PP
45 Packages can be signed by the zpm-sign utility.
46 .PP
47 Public keys are put into a trust db at /var/lib/zpm/trustdb
48 (or $ZPMTRUSTDB, or ~/.zpm/trustdb, or via command line).
49 .PP
50 zpm-checksignature -t trustdbfile 
51 .SH OPTIONS
52 \-P \fIpath\fR sets a path to the sub-command executables
53 .SH EXAMPLES
54 .B zpm init \fIpkgfile\fR
55 .B zpm list \fIpkgfile\fR
56 .SH EXIT STATUS
57 0 on success non zero on failure
58 .SH FILES
59 /var/lib/zpm/local.db
60 .SH AUTHOR
61 Nathan Wagner
62 .SH CREDITS
63 .PP
64 The following code all has a statement putting it into the public domain.
65 .TP
66 Ed25519
67 adapted from code by Phillip Lay https://www.phlay.de/
68 .TP
69 TLSE
70 TLS code adapted from tlse (heavily, there really isn't much tlse code left).
71 .TP
72 tomsfastmath and libtomcrypt
73 used by the TLS implementation
74 .TP
75 Chacha20 and Curve25519
76 from ref10 implementations by Daniel Bernstein
77 .TP
78 SQLite
79 from https://sqlite.org/index.html
80 .TP
81 lzma
82 from http://git.tukaani.org/xz.git
83 .TP
84 SSL root certificates
85 taken from http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt
86 .PP
87 All other code written by Nathan Wagner and also placed in the public domain.
88 .SH LICENSE
89 ZPM itself is in the public domain.  Compiled programs themselves
90 likely contain code from the C library and are subject to any licensing
91 requirements that implies.  Where possible, programs have been statically
92 linked with musl rather than glibc, since glibc doesn't actually support
93 static linking.  See https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT for
94 the musl copyright.
95 .SH SEE ALSO
96 .BR zpm-contents (8)
97 .BR zpm-list (8)
98 .BR zpm-update (8)
99 .BR zpm-repo (8)
100 .BR zpm-quote (8)
101 .BR zpm-hash (8)
102 .BR zpm-fetchurl (8)