repo-add - Man Page
package database maintenance utility
Examples (TL;DR)
- Create an empty repository:
repo-add path/to/database.db.tar.gz
- Add all package binaries in the current directory and remove the old database file:
repo-add --remove path/to/database.db.tar.gz *.pkg.tar.zst
- Add all package binaries in the current directory in silent mode except for warning and error messages:
repo-add --quiet path/to/database.db.tar.gz *.pkg.tar.zst
- Add all package binaries in the current directory without showing color:
repo-add --nocolor path/to/database.db.tar.gz *.pkg.tar.zst
Synopsis
repo-add [options] <path-to-db> <package> [<package> ...]
repo-remove [options] <path-to-db> <packagename> [<packagename> ...]
Description
repo-add and repo-remove are two scripts to help build a package database for packages built with makepkg(8) and installed with pacman(8).
repo-add will update a package database by reading a built package file. Multiple packages to add can be specified on the command line.
If a matching “.sig” file is found alongside a package file, the signature will automatically be embedded into the database.
repo-remove will update a package database by removing the package name specified on the command line. Multiple packages to remove can be specified on the command line.
A package database is a tar file, optionally compressed. Valid extensions are “.db” followed by an archive extension of “.tar”, “.tar.gz”, “.tar.bz2”, “.tar.xz”, or “.tar.Z”. The file does not need to exist, but all parent directories must exist.
Common Options
- -q, --quiet
Force this program to keep quiet and run silently except for warning and error messages.
- -s, --sign
Generate a PGP signature file using GnuPG. This will execute gpg --detach-sign on the generated database to generate a detached signature file, using the GPG agent if it is available. The signature file will be the entire filename of the database with a “.sig” extension.
- -k, --key <key>
Specify a key to use when signing packages. Can also be specified using the GPGKEY environment variable. If not specified in either location, the default key from the keyring will be used.
- -v, --verify
Verify the PGP signature of the database before updating the database. If the signature is invalid, an error is produced and the update does not proceed.
- --nocolor
Remove color from repo-add and repo-remove output.
Repo-Add Options
- -n, --new
Only add packages that are not already in the database. Warnings will be printed upon detection of existing packages, but they will not be re-added.
- -R, --remove
Remove old package files from the disk when updating their entry in the database.
- --include-sigs
Include package PGP signatures in the repository database (if available)
Example
repo-add foo.db.tar.xz <pkg1> [<pkg2> ...]
This creates two separate databases; a smaller database “foo.db.tar.xz” used by pacman and a large database containing package file lists “foo.files.tar.xz” for use by other utilities. While pacman can use the large database (if renamed with a db.tar* extension), there is currently no additional benefit for the larger download.
See Also
See the pacman website at https://archlinux.org/pacman/ for current information on pacman and its related tools.
Bugs
Bugs? You must be kidding; there are no bugs in this software. But if we happen to be wrong, please report them to the issue tracker at https://gitlab.archlinux.org/pacman/pacman/-/issues with specific information such as your command-line, the nature of the bug, and even the package database if it helps.
Authors
Current maintainers:
- Allan McRae <allan@archlinux.org>
- Andrew Gregory <andrew.gregory.8@gmail.com>
- Morgan Adamiec <morganamilo@archlinux.org>
Past major contributors:
- Judd Vinet <jvinet@zeroflux.org>
- Aurelien Foret <aurelien@archlinux.org>
- Aaron Griffin <aaron@archlinux.org>
- Dan McGee <dan@archlinux.org>
- Xavier Chantry <shiningxc@gmail.com>
- Nagy Gabor <ngaba@bibl.u-szeged.hu>
- Dave Reisner <dreisner@archlinux.org>
- Eli Schwartz <eschwartz@archlinux.org>
For additional contributors, use git shortlog -s on the pacman.git repository.
Referenced By
The man page repo-remove(8) is an alias of repo-add(8).