---
name: "repod-file"
section: "1"
platform: "linux"
package: "repod"
version: "0.3.1-5"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/repod-file"
---

# repod-file(1)

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 \<#sync-database\> files can be transformed to representations used in the context of a Management Repository \<#management-repository\>.

**Note:**

Files Database \<#files-sync-database\> files are required to create Management Repository \<#management-repository\> files, that contain information on files contained in the respective packages they represent! This data is not contained in the Default Database \<#default-sync-database\> files!

For testing purposes, the system's  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 \<#default-sync-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-sync-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 \<#default-sync-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 \<#management-repository\> can be transformed into a Sync Database \<#sync-database\> (both Default Database \<#default-sync-database\> and Files Database \<#files-sync-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 \<#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)](/repod.conf/5.md) \<https://man.archlinux.org/man/repod.conf.5\>**, **[BUILDINFO(5)](/BUILDINFO/5.md) \<https://man.archlinux.org/man/BUILDINFO.5\>**, **[mtree(5)](/mtree/5.md) \<https://man.archlinux.org/man/mtree.5\>**, **[pacman(8)](/pacman/8.md) \<https://man.archlinux.org/man/pacman.8\>**

## Author

David Runge

## Copyright

2022, David Runge
