repod-file
File actions for packages, management repository and sync databases.
usage: repod-file [-h] [-c CONFIG] [-d] [-s] [-v] {package,repo,schema} ...
Positional Arguments
- subcommand
Possible choices: package, repo, schema
Named Arguments
- -c, --config
configuration file
- -d, --debug
debug output
Default: False
- -s, --system
system mode
Default: False
- -v, --verbose
verbose output
Default: False
Sub-commands
package
interact with package files
repod-file package [-h] {inspect} ...
Positional Arguments
- package
Possible choices: inspect
Sub-commands
inspect
inspect package files
repod-file package inspect [-h] [-B | -M | -P] [-p] [-s] file [file ...]
Positional Arguments
- file
package files
Named Arguments
- -B, --buildinfo
only inspect .BUILDINFO
Default: False
- -M, --mtree
only inspect .MTREE
Default: False
- -P, --pkginfo
only inspect .PKGINFO
Default: False
- -p, --pretty
pretty print output
Default: False
- -s, --with-signature
locate and use a signature file for each provided package file
Default: False
repo
interact with repositories
repod-file repo [-h] {importdb,importpkg,writedb} ...
Positional Arguments
- repo
Possible choices: importdb, importpkg, writedb
Sub-commands
importdb
import state from a repository sync database
repod-file repo importdb [-h] [-a ARCHITECTURE] [-D | -S | -T] file name
Positional Arguments
- file
repository sync database
- name
name of repository to import to
Named Arguments
- -a, --architecture
target a repository with a specific architecture (if multiple of the same name but differing architecture exist)
- -D, --debug
import to debug repository
Default: False
- -S, --staging
import to staging repository
Default: False
- -T, --testing
import to testing repository
Default: False
importpkg
import packages to a repo
repod-file repo importpkg [-h] [-a ARCHITECTURE] [-d] [-p] [-s]
[-u SOURCE_URL [SOURCE_URL ...]] [-D | -S | -T]
file [file ...] name
Positional Arguments
- file
package files
- name
name of repository to import to
Named Arguments
- -a, --architecture
target a repository with a specific architecture (if multiple of the same name but differing architecture exist)
- -d, --dry-run
only show output, but do not write output to file
Default: False
- -p, --pretty
pretty print output (only applies to dry-run mode)
Default: False
- -s, --with-signature
locate and use a signature file for each provided package file
Default: False
- -u, --source-url
list of source URLs for added pkgbases (provided as one or more pkgbase=url strings)
Default: []
- -D, --debug
import to debug repository
Default: False
- -S, --staging
import to staging repository
Default: False
- -T, --testing
import to testing repository
Default: False
writedb
export state to repository sync database
repod-file repo writedb [-h] [-a ARCHITECTURE] [-D | -S | -T] name
Positional Arguments
- name
name of repository to write to
Named Arguments
- -a, --architecture
target a repository with a specific architecture (if multiple of the same name but differing architecture exist)
- -D, --debug
export from debug repository
Default: False
- -S, --staging
export from staging repository
Default: False
- -T, --testing
export from testing repository
Default: False
schema
JSON schema commands
repod-file schema [-h] {export} ...
Positional Arguments
- schema
Possible choices: export
Sub-commands
export
export JSON schemas to directory
repod-file schema export [-h] dir
Positional Arguments
- dir
directory to which to write JSON files to
EXAMPLES
TRANSFORM REPOSITORY SYNC DATABASE TO MANAGEMENT REPOSITORY
Sync Database files can be transformed to representations used in the context of a Management Repository.
Note
Files Database files are required to create Management Repository files, that contain information on files contained in the respective packages they represent! This data is not contained in the Default Database files!
For testing purposes, the system’s pacman sync databases in
/var/lib/pacman/sync/
can be used (this assumes a system that makes use of
pacman as package manager).
To import Default Database files and output them to the management repository directory of a configured repository, use:
repod-file repo importdb /var/lib/pacman/sync/core.db default
To be able to use Files Database files, make sure to update them first.
pacman -Fy
Afterwards it is possible to import those files analogous to how it is done with Default Database files:
repod-file repo importdb /var/lib/pacman/sync/core.files default
The above assumes the repository named default is present (e.g. when no configuration file for repod is present).
TRANSFORM MANAGEMENT REPOSITORY TO REPOSITORY SYNC DATABASE
The JSON files contained in a Management Repository can be transformed into a Sync Database (both Default Database and Files Database files are created).
After following the examples in TRANSFORM REPOSITORY SYNC DATABASE TO MANAGEMENT REPOSITORY, it is possible to use the created files and turn them back into Sync Database files.
repod-file repo writedb default
The above creates default.db
as well as default.files
in the binary
repository location of the repository named default.