LinuxCommandLibrary

repomix

Merge package repositories

TLDR

Output custom format

$ repomix [[-o|--output]] [path/to/file] --style [xml|markdown|plain]
copy

Send output to stdout
$ repomix --stdout > [path/to/file]
copy

Send output to stdout, then pipe into another program
$ repomix --stdout | [less]
copy

Output with compression
$ repomix --compress
copy

Process specific files
$ repomix --include "[src/**/*.ts]" --ignore "[**/*.test.ts]"
copy

Pack a repository from a branch
$ repomix --remote [https://github.com/user/repo/tree/main]
copy

Pack a repository at a specific commit
$ repomix --remote [https://github.com/user/repo/commit/836abcd7335137228ad77feb28655d85712680f1]
copy

Pack repository using shorthand
$ repomix --remote [user/repo]
copy

SYNOPSIS

As `repomix` itself is not a standalone command, its functionality was invoked through the Pulp 2 client's `pulp-admin` tool. The typical conceptual invocation was:

pulp-admin rpm repo create
  --repo-id <new_repository_id>
  --repomix=true
  --source-repo-ids=<repo1_id>[,<repo2_id>,...]

This structure indicates creating a new repository (`repo create`) with a specified ID, enabling the mixing feature (`--repomix=true`), and listing the source repositories (`--source-repo-ids`) to draw content from.

PARAMETERS

--repo-id <new_repository_id>
    Specifies the unique identifier for the new repository that will be created to house the mixed content. This ID is used for subsequent management and client configuration within Pulp 2.

--repomix=true
    A boolean flag that, when set to true, instructs the Pulp 2 system to perform a repository mixing operation, combining content from specified source repositories rather than synchronizing from a single upstream.

--source-repo-ids=<repo1_id>[,<repo2_id>,...]
    A comma-separated list of unique identifiers for existing Pulp 2 repositories whose content (packages, metadata) will be aggregated into the new mixed repository.

DESCRIPTION

The term `repomix` refers to a specific functionality, primarily associated with the Pulp 2 content management platform. It enabled the creation of a new RPM repository by intelligently combining packages and metadata from several existing RPM repositories. This feature was vital for system administrators to aggregate, curate, and simplify access to software packages from various upstream sources into a single, unified repository for client systems. Unlike typical repository synchronization, `repomix` created a logical union, often linking to content rather than duplicating it, optimizing storage and management.

CAVEATS

The term `repomix` is not a standalone, general-purpose command found in most standard Linux distributions. It primarily refers to a specific feature within the Pulp 2 content management platform's `pulp_rpm` plugin. Pulp 2 is an older, deprecated version of the Pulp project and has reached its End-of-Life. Modern content management systems, including Pulp 3, use different architectures and methods for content aggregation and distribution, meaning the explicit `repomix` command or flag is typically not present. Information provided here is based on its context within Pulp 2.

CONTEXT IN PULP 2

In Pulp 2, the `repomix` functionality allowed server administrators to define a virtual repository that would logically draw its content from multiple existing source repositories. This was a powerful feature for creating custom content views without duplicating vast amounts of data, as Pulp would intelligently link to the content rather than storing multiple physical copies, optimizing storage and synchronization efforts.

CURRENT STATUS AND ALTERNATIVES

Users should be aware that Pulp 2 is an older, deprecated version of the Pulp content management system. Its successor, Pulp 3, offers similar capabilities for content aggregation but uses a redesigned architecture and different command-line interfaces. For current content management needs, users should explore Pulp 3 or other modern repository management solutions that provide similar aggregation features, often through concepts like content views or composite repositories, which abstract the mixing process.

HISTORY

The `repomix` functionality was a significant innovation introduced with the Pulp 2 project, specifically within its `pulp_rpm` plugin. Launched to provide robust content management for RPMs and other package types, Pulp 2 utilized `repomix` to enable administrators to create custom, consolidated views of software for their client systems. This simplified package distribution and management by aggregating disparate upstream repositories into a single logical source. With the subsequent development of Pulp 3, the underlying architecture shifted, and while content aggregation remains a core feature, the explicit `repomix` terminology and invocation methods evolved into more integrated and generalized content management functionalities within the new platform.

SEE ALSO

createrepo(8), yum-config-manager(1), dnf config-manager(1), pulp-admin(1) (Pulp 2 client)

Copied to clipboard