Appendix A State and Paths

A.1 Per installation root #

LocationContent
<root>/var/state/peipkg/db.sqliteThe package database: installed packages, owned files, repositories, claims, named roots, and the transaction journal (§2.5)
<root>/lcl/conf/peipkg/<name>.repoOne repository configuration file per configured repository
<root>/var/state/peipkg/cache/The index cache: content-addressed index and signature objects, and a pointer file naming the current object per repository

The database is the only authoritative state. The configuration directory is the operator's, and the cache is disposable.

A.2 Transient names #

PatternMeaning
<destination>.peipkg-staged-<txnid>A file written but not yet committed, a sibling of its destination
<destination>.peipkg-backup-<txnid>A displaced original, a sibling of its destination
<name>.peipkg-newA package's new default beside a configuration file the operator had edited

The first two are removed at commit or at rollback. The third is permanent and is owned by nothing.

Where a destination's basename is long enough that adding the marker would exceed the filesystem's name limit, the basename is truncated to fit.

A.3 Composition #

LocationContent
<manifest-stem>.lock.tomlThe pinned closure a composition resolves to
<out>.peipkg-compose-tmpThe tree under construction, renamed into place on success
<out>/usr/share/licenses.jsonThe license inventory the composer writes, owned by no package

A.4 Side-effect tools #

IdentifierInvoked
ldconfig/bin/ldconfig
depmod/libexec/depmod -a
man-db/bin/mandb -q

Each with a cleared environment of LC_ALL=C and PATH=/bin, and with input closed.

depmod sits in /libexec rather than /bin because it is machine-facing: this and the kernel's own make modules_install are its only callers, and no documented workflow has a person running it. The fixed-path property the design depends on is unaffected — /libexec is a merged view with the same local-stratum protection as /bin, so a package still cannot shadow the tool.

A.5 Producer files #

FileRole
pekit.tomlThe recipe
workspace.pekit.tomlThe workspace marker
package.pekit.toml, <selector>.package.pekit.tomlPackage definitions, layered
packages.pekit/An alternative directory for the above
env.pekit.toml, <name>.env.pekit.tomlBuild environments
<name>.keyring.pekit.tomlSecrets, including the package signing key
pekit.lockThe source pin
<patches>/seriesThe patch series

Edit this page