createrepo-agent - Man Page

Rapidly and repeatedly generate RPM repository metadata

Synopsis

createrepo-agent [OPTION?] REPO_CLUSTER_DIR

Description

createrepo-agent is a tool for rapidly iterating on clusters of associated RPM repositories. It leverages Assuan IPC to create a daemon process which caches the metadata for each sub-repository in the cluster so that it doesn't need to be re-loaded and parsed each time a change is made. The most notable implementation of the Assuan protocol is gpg-agent, which gives createrepo-agent its name.

Commands

-h
--help

Show program help text.

--daemon

Run the createrepo-agent as a detached background process.

--server

Run the createrepo-agent as a foreground process.

--import=RPM_FILE

Connect to an existing createrepo-agent process or spawn a new one, then import an RPM package into the repository cluster. May be specified multiple times.

--sync=BASE_URL

Connect to an existing createrepo-agent process or spawn a new one, then import RPM packages into the repository cluster from another. The BASE_URL may be a local file path or a remote URL. 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.

Options

--arch=ARCH_NAME

When importing, add the packages specified by --import into the sub-repositories for these architectures. When syncing, add packages from the upstream repository into the corresponding sub-repositories for these architectures. If not specified, default value is 'SRPMS'.

--invalidate-family

When removing binary packages during import, also remove any packages from that architecture sub-repository and associated debug sub-repository which were built from the same source RPM.

--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.

--sync-pattern=REGEX

When syncing from another repository, only add and remove packages which match the given regular expression.

Examples

Importing loose packages into a repository

  • Import three packages into the repository. If there is 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 i386 and x86_64 sub-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 repsository 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.

    $ 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)