Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Belatedly document the files actually created by pkg repo nowadays.
Matthew Seaman committed 9 years ago
commit 6587cf4643db75968d09bce61d5b43813baa15eb
parent 5eab35d
1 file changed +76 -19
modified docs/pkg-repo.8
@@ -14,7 +14,7 @@
.\"
.\"     @(#)pkg.8
.\"
-
.Dd April 9, 2015
+
.Dd May 9, 2016
.Dt PKG-REPO 8
.Os
.Sh NAME
@@ -34,45 +34,102 @@
.Ao Ar repo-path Ac Op Ao Ar rsa-key Ac | signing_command: Ao Ar the command Ac
.Sh DESCRIPTION
.Nm
-
is used for creating a catalogue of the available
+
is used to create a catalogue of the available
packages in a repository.
.Nm
-
catalogues are necessary for sharing your package repository with
-
other people.
+
catalogues are necessary for sharing your package repository,
+
and are intrinsic to the operation of
+
.Nm "pkg install"
+
or
+
.Nm "pkg upgrade" .
+
.Pp
+
The repository files created by
+
.Nm
+
consist of a number of compressed tar archives stored typically at the
+
top level of the repository filesystem.
+
Of these,
+
.Pa meta.txz
+
must exist at the apex of the repository filesystem.
+
This is a well-known name that is hard-wired into 
+
.Xr pkg 8 .
+
.Pp
+
.Pa meta.txz
+
contains at least one file:
+
.Pa meta
+
which contains a key to the location and format of the other files
+
comprising the catalogue information.
+
Other files may have arbitrary names as defined in
+
.Pa meta ,
+
but conventionally the following names are used.
.Pp
-
When
+
.Pa digests.txz
+
contains
+
.Pa digests
+
which lists the cryptographic checksums for each of the packages in
+
the repository.
+
This is downloaded when
+
.Cm SIGNATURE_TYPE
+
is set to
+
.Ar FINGERPRINTS
+
in the repository configuration.
+
.Pp
+
.Pa filesite.txz
+
contains
+
.Pa filesite.yaml
+
which is a database of all of the files present in all of the packages in
+
the repository, containing filenames, file sizes and checksums.
+
Generating
+
.Pa filesite.txz
+
involves significant additional system resources and is not usually done.
+
.Pp
+
.Pa packagesite.txz
+
similarly contains at least one file
+
.Pa packagesite.yaml ,
+
which is a YAML document listing selected metadata for each of the
+
packages in the repository.
+
This is the key file containing the working data used by
+
.Xr pkg 8
+
and includes the run-time dependencies for each package,
+
plus shared library dependencies and similar data that are used by
+
.Xr pkg 8
+
to solve package dependency problems.
+
.Pp
+
In addition to the files already mentioned, the
+
.Pa .txz
+
archives may also contain cryptographic signatures.
+
These will be produced when the internal signature mechanism of
.Nm
-
is invoked it creates a package repository catalogue (repo.sqlite),
-
with an optional cryptographic signature, as a compressed tarball
-
(repo.txz).
-
Repository users download and cache this on their local machines,
-
for fast lookup of available packages by programs such as
+
is enabled.
+
.Pp
+
Repository users download these files to their local machines, where
+
they are processed into per-repository sqlite databases for fast
+
lookup of available packages by programs such as
.Xr pkg-install 8 .
.Pp
-
To create a package repository catalogue you must specify the
-
top-level directory where all the packages are stored as
+
To create a package repository catalogue, specify the top-level
+
directory beneath which all the packages are stored as
.Ar repo-path .
.Nm
will search the filesystem beneath
.Ar repo-path
to find all the packages it contains.
Directories starting with
-
.Qq . Qc
+
.Sq \&. 
or
named
.Pa Latest
are not traversed.
.Pp
-
The repository will be created in the package directory unless the
+
The repository files will be created in the top-level repository directory
+
unless relocated by specifying
.Fl o Ar output-dir
or
-
.Cm --output-dir Ar output-dir
-
is specified, in which case it will be created there.
+
.Cm --output-dir Ar output-dir .
.Pp
-
Optionally you may sign the repository catalogue by specifying the
-
path to an RSA private key as the
+
Optionally, the repository catalogue may be cryptographically signed.
+
This is enabled either by specifying the path to an RSA private key as the
.Ar rsa-key
-
argument or an external command.
+
argument or by using an external command.
.Pp
If
.Ar rsa-key