pacwrap/docs/manual.md
Xavier deb0000fb0 Some errata fixed, typos, and path updated in bin/pacwrap-common
- Handle rewind I/O error properly by returning blank state in
  filesystem.rs module
- Upon initialization of container, setup default timezone.
- Corrected path to new configuration location in pacwrap-common script
- Updated definition for --force-foreign in manual.rs module
- Patched erroneously unbracketed conditional in proc.rs module
2024-02-12 23:26:58 -05:00

168 lines
6.4 KiB
Markdown

# Pacwrap User Manual
This document was generated by the pacwrap binary on 12/02/2024 with version 0.7.1-f2a2c39 of the program.
## NAME
pacwrap
## SYNOPSIS
pacwrap [**OPERATION**] [**ARGUMENTS**] [**TARGETS**]
## DESCRIPTION
A package management front-end which utilises libalpm to facilitate the creation of unprivileged,
namespace containers with parallelised, filesystem-agnostic deduplication. These containers
are constructed with bubblewrap to execute package transactions and launch applications.
This application is designed to allow for the creation and execution of secure, replicable
containerised environments for general-purpose use. CLI and GUI applications are all supported.
Once a container environment is configured, it can be re-established or replicated on any system.
## OPERATIONS
#### **-S, --sync**
Synchronize package databases and update packages in target containers.
#### **-U, --utils**
Invoke miscellaneous utilities to manage containers.
#### **-P, --process**
Manage and show status of running container processes.
#### **-E, --execute**
Executes application in target container using bubblewrap.
#### **-h, --help=OPTION**
Invoke a printout of this manual to **STDOUT**.
#### **-V, --version**
Display version and copyright information in **STDOUT**.
## EXECUTE
#### **-r, --root**
Execute operation with fakeroot and fakechroot. Facilitates a command with faked privileges.
#### **-s, --shell**
Invoke a bash shell
## SYNCHRONIZATION
#### **-y, --refresh**
Synchronize remote package databases. Specify up to 2 times to force a refresh.
#### **-u, --upgrade**
Execute aggregate upgrade routine on all or specified containers. Use **-t, --target=TARGET** to limit
package synchronization operations to the specified target containers. Packages applicable to
a target **must** be specified only after the target operand.
e.g. '-t electron element-desktop -t mozilla firefox thunderbird'
#### **-f, --filesystem**
Force execution of filesystem synchronization target on all or specified containers. In combination
with **-o/--target-only**, in addition to no other specified targets, filesystem slices will be
synchronized without package synchronization on all applicable containers.
#### **-c, --create**
Create a container with the first specified target. A container type argument is also required.
#### **-b, --base**
Base container type. Specify alongside **-c, --create** to assign this container type during creation.
This container type is used as the base layer for all downstream containers. Only one base container
dependency per slice or aggregate is supported. Filesystem and package deduplication via slices and
aggregate containers are recommended, but optional.
#### **-s, --slice**
Slice container type. Specify alongside **-c, --create** to assign this container type during creation.
Requires a base dependency, and optionally one or more sliced dependencies, to ascertain foreign
packages and influence ordering of downstream synchronization target(s). Container slicing provides
the ability to install packages in a lightweight, sliced filesytem, which aid in the deduplication
of common downstream package and filesystem dependencies.
Useful for graphics drivers, graphical toolkits, fonts, etc.; these are not meant for applications.
#### **-a, --aggegrate**
Aggregate container type. Specify alongside **-c, --create** to this assign container type during creation.
Requires a base dependency, and optionally one or more sliced dependencies, in order to acertain foreign
packages and amalgamate the target. These containers are ideal for installing software with the aid of
filesystem and package deduplication.
Useful for all general purpose applications, browsers, e-mail clients, and even terminal user interface
applications such as IRC clients. It is recommended to base your containers on aggregate type containers.
#### **-t, --target=TARGET**
Specify a target container for the specified operation.
#### **-d, --dep=DEPEND**
Specify a dependent container for the specified operation.
#### **-o, --target-only**
Apply specified operation on the specified target only.
#### **--force-foreign**
Force synchronization of foreign packages on resident container. Useful for when installing
a new package in an aggregate container without all the prerequisite foreign dependencies
synchronized to this container's package database.
#### **--dbonly**
Transact on resident containers with a database-only transaction.
#### **--noconfirm**
Override confirmation prompts and confirm all operations.
## PROCESS
#### **-s, --summary**
Enumerate a process summary of containers being executed by pacwrap.
#### **-k, --kill**
Kill target containers and their associated processes.
#### **-a, --all**
Enumerate all processes associated with running containers.
#### **-d, --depth**
Enumerate all processes at the specified depth associated with running containers.
#### **-t, --target=TARGET**
Specify a target container for the specified operation.
#### **--noconfirm**
Override confirmation prompts and confirm all operations.
## UTILITIES
-TODO-
## HELP
#### **-m, --more**
When specifying a topic to display, show the default topic in addition to specified options.
#### **-f, --format=FORMAT**
Change output format of help in **STDOUT**. Format options include: 'ansi', 'dumb', 'markdown', and 'man'.
This option is for the express purposes of generating documentation at build time, and has little utility
outside the context of package maintenance. 'man' option produces troff-formatted documents for man pages.
#### **-a, --all, --help=all**
Display all help topics.
## ENVIRONMENT VARIABLES
#### **PACWRAP_CONFIG_DIR**
Overrides the default XDG Directory Specification compliant configuration directory.
#### **PACWRAP_DATA_DIR**
Overrides the default XDG Directory Specification compliant data directory.
#### **PACWRAP_CACHE_DIR**
Overrides the default XDG Directory Specification compliant cache directory.
## VERSION
#### **-V, --version, --version=min**
Sends version information to **STDOUT** with colourful ASCII art.
The 'min' option provides a minimalistic output as is provided to non-colour terms.
This documentation was generated by pacwrap v0.7.1-f2a2c39-RELEASE (12/02/2024).
Please seek relevant documentation if 'pacwrap -V' mismatches with the aforementioned.
## COPYRIGHT
Copyright (C) 2023-2024 Xavier R.M.
This program may be freely redistributed under the
terms of the GNU General Public License v3 only.