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.

SEE ALSO

repod.conf(5), BUILDINFO(5), mtree(5), pacman(8)