REPO-ADD(8)

🌸 REPO-ADD(8) β€” the pacman manual, but make it cute 🌸

okay bestie, gather round, because this is repo-add, and she's literally the package database maintenance utility of your dreams πŸ’– (the page lives in the Pacman Manual, iykyk)


✨ NAME ✨

repo-add β€” package database maintenance utility πŸ› οΈ


πŸŽ€ SYNOPSIS πŸŽ€

repo-add [options] <path-to-db> <package> [<package> ...]

repo-remove [options] <path-to-db> <packagename> [<packagename> ...]

πŸ’… DESCRIPTION πŸ’…

so repo-add and repo-remove are two little scripts whose whole job is helping you build a package database for packages built with makepkg(8) and installed with pacman(8). iconic behavior, honestly.

repo-add updates a package database by reading a built package file. and you're not limited to one, bestie β€” you can throw multiple packages to add right there on the command line. slay ✨

and here's the cute part: if a matching .sig file is found chillin' right alongside a package file, that signature gets automatically embedded into the database. no extra steps, she just does it 🫢

repo-remove updates a package database by removing the package name you specify on the command line. yep, multiple packages to remove can also be specified on the command line. equal opportunity πŸŽ€

now, a package database is a tar file, optionally compressed. the valid extensions are .db followed by an archive extension of .tar, .tar.bz2, .tar.gz, .tar.lrz, .tar.lz, .tar.lz4, .tar.lzo, .tar.xz, .tar.zst or .tar.Z. and listen β€” the file does not need to exist yet, she'll come into being, main character energy. but all parent directories must exist. no skipping that part, fr fr πŸ’€


🌈 COMMON OPTIONS 🌈

  • -q, --quiet β€” force this program to keep quiet and run silently, except for warning and error messages. she's giving peace and quiet 🀫
  • -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. signature moment πŸ”₯
  • -k, --key key β€” specify a key to use when signing packages. can also be specified using the GPGKEY environment variable. if you don't specify it in either location, the default key from the keyring will be used. defaults, we love her πŸ‘‘
  • -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. trust issues, but make them valid πŸ™ˆ
  • --nocolor β€” remove color from repo-add and repo-remove output. (sad, but okay 🌸)
  • -R, --remove β€” remove old package files from the disk when updating or removing their entry in the database. declutter era 🧹
  • -w, --wait-for-lock β€” wait for the lock file to be acquired. if unset, command will fail with exit code 2 if acquiring the lock fails. if set, it will retry to acquire lock until success. patience is a virtue bestie ⏳

πŸ¦‹ 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. new only, no reruns πŸ’…
  • -p, --prevent-downgrade β€” do not add package to database if a newer version is already present. we do not go backwards in this house ✨
  • --include-sigs β€” include package PGP signatures in the repository database (if available). the more sigs the merrier πŸŽ€

🌟 EXAMPLE 🌟

repo-add foo.db.tar.xz <pkg1> [<pkg2> ...]

this creates two separate databases:

  • a smaller database foo.db.tar.xz used by pacman 🐱
  • a large database containing package file lists foo.files.tar.xz for use by other utilities πŸ“š

and yes, while pacman can use the large database (if renamed with a db.tar* extension), there is currently no additional benefit for the larger download. so like… don't bother, bestie 😭


πŸ‘€ SEE ALSO πŸ‘€

makepkg(8), pacman(8)

see the pacman website at https://archlinux.org/pacman/ for current information on pacman and its related tools. go read, it's giving informed πŸ’œ


πŸ’€ BUGS πŸ’€

bugs? you must be kidding; there are no bugs in this software. periodt. πŸ’…

but if we happen to be wrong (not me being wrong, never 😭), 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. receipts, bestie, we need receipts 🧾


πŸ‘‘ 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. legends only ⭐


and that's the whole page, bestie 🫢 go forth and build that database, you absolute icon.

Pacman 7.1.0 β€” 2026-10-15 β€” REPO-ADD(8), signing off πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from