Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Belatedly document the files actually created by pkg repo nowadays.
Matthew Seaman committed 10 years ago
commit 6587cf4643db75968d09bce61d5b43813baa15eb
parent 5eab35db18889d0c5b5ca8e427aa5811ce9de1fa
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