CREATEREPO-AGENT(1)
π CREATEREPO-AGENT π
okay bestie, welcome to createrepo-agent(1) from the General Commands Manual β she's a whole vibe and she's about to make your RPM repos absolutely thrive. π¦
β¨ NAME β¨
createrepo-agent β rapidly and repeatedly generate RPM repository metadata π
β¨ SYNOPSIS β¨
createrepo-agent [OPTION?] REPO_CLUSTER_DIR
β¨ DESCRIPTION β¨
so like. createrepo-agent is a tool for rapidly iterating on clusters of associated RPM repositories. that's the whole thing, that's her job π
the way she does it?? she leverages Assuan IPC to spin up a daemon process which caches the metadata for each sub-repository in the cluster. which means β and this is the iconic part β she doesn't need to re-load and re-parse all that metadata every single time a change is made. no cap. she just remembers. π§ β¨
the most notable implementation of the Assuan protocol is gpg-agent, which is literally where createrepo-agent got her name from. slay lineage fr fr π
β¨ COMMANDS β¨
-h,--helpβ show program help text. that's it, that's the whole thing, she's helpful like that π«Ά--daemonβ runcreaterepo-agentas a detached background process. she's going off on her own, main character energy, you won't even see her leave π¨--serverβ runcreaterepo-agentas a foreground process. right there with you, holding your hand, not going anywhere π--import=RPM_FILEβ connect to an existingcreaterepo-agentprocess, or spawn a new one, then import an RPM package into the repository cluster. may be specified multiple times (she loves being asked more than once, honestly same) π--sync=BASE_URLβ connect to an existingcreaterepo-agentprocess, or spawn a new one, then import RPM packages into the repository cluster from another repository. theBASE_URLmay be a local file path or a remote URL. and here's the tea: in the absence of--sync-pattern, any packages present in both repositories will be removed from the repository cluster and re-added from the upstream repository. lowkey dramatic but okay π
β¨ OPTIONS β¨
--arch=ARCH_NAMEβ when importing, add the packages specified by--importinto the sub-repositories for these architectures. when syncing, add packages from the upstream repository into the corresponding sub-repositories for these architectures. if you don't specify it, the default value is'SRPMS'. π«--invalidate-familyβ when removing binary packages during import, also remove any packages from that architecture sub-repository and the associated debug sub-repository which were built from the same source RPM. she's taking the whole family out, no survivors, it's giving dynasty finale π--invalidate-dependantsβ when removing binary packages during import, also remove any packages from that architecture sub-repository which (recursively) declare runtime dependencies on any package being removed. recursive?? she said i will find them and i will remove them π₯--sync-pattern=REGEXβ when syncing from another repository, only add and remove packages which match the given regular expression. very picky, very demure, very mindful πΈ
β¨ EXAMPLES β¨
π Importing loose packages into a repository
- import three packages into the repository. if there's already a package in the repository with any of the given names, remove it and all packages which were built at the same time. import them into both the
i386andx86_64sub-repositories.
$ createrepo-agent --import=foo-1.2.3.i686.rpm --import=foo-devel-1.2.3.i686.rpm --import=foo-debuginfo-1.2.3.i686.rpm --arch=i386 --arch=x86_64 --invalidate-family /var/www/html/repo/
- import a single source package into the repository.
$ createrepo-agent --import=foo-1.2.3.src.rpm /var/www/html/repo/
π Importing packages from other repositories
- import all packages present in the upstream repository. if there are already packages in the repository which are present in the upstream repository, remove them, any packages which were built at the same time as them, and any packages which (recursively) depend on them. it's a full reset bestie, she's not playing π
$ createrepo-agent --sync=/var/www/html/upstream_repo/ --arch=SRPMS --arch=x86_64 --invalidate-family --invalidate-dependants /var/www/html/repo/
- import any packages present in the upstream repository with a name beginning with
'foobar'into the repository. any packages already in the repository matching the pattern which are not also present in the upstream repository are removed.
$ createrepo-agent --sync=https://example.com/upstream_repo/ --arch=SRPMS --arch=x86_64 --sync-pattern 'foobar.*' /var/www/html/repo/
β¨ SEE ALSO β¨
createrepo_c(8) β her cousin, also iconic, go say hi π«Ά
ok that's the whole page, you ate that, no crumbs left π
and that's a wrap on CREATEREPO-AGENT(1) from the General Commands Manual β mwah, go build something beautiful, ily πβ¨
π¦ where this page comes from
- epel 10: createrepo-agent 0.6.0-1.el10_3 Β· Apache-2.0
- epel 9: createrepo-agent 0.6.0-1.el9 Β· Apache-2.0
- fedora 43: createrepo-agent 0.6.0-1.fc43 Β· Apache-2.0
- fedora 44: createrepo-agent 0.5.1-1.fc44 Β· Apache-2.0
- fedora 44: createrepo-agent 0.6.0-1.fc44 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms