CMD: pig repo

Manage software repositories with pig repo subcommand

The pig repo command is a comprehensive tool for managing package repositories on Linux systems. It provides functionality to add, remove, create, and manage software repositories for both RPM-based (RHEL/CentOS/Rocky/Alma) and Debian-based (Debian/Ubuntu) distributions.

CommandDescriptionNotes
repo listPrint available repo and module list
repo infoGet repo detailed information
repo statusShow current repo status
repo addAdd new repositoryRequires sudo or root
repo setWipe, overwrite, and update repositoryRequires sudo or root
repo rmRemove repositoryRequires sudo or root
repo updateUpdate repo cacheRequires sudo or root
repo createCreate local YUM/APT repositoryRequires sudo or root
repo cacheCreate offline package from local repoRequires sudo or root
repo bootBootstrap repo from offline packageRequires sudo or root

Quick Start

# Method 1: Clean existing repos, add all necessary repos and update cache (recommended)
pig repo add all --remove --update    # Remove old repos, add all essentials, update cache

# Method 1 variant: One-step
pig repo set                          # = pig repo add all --remove --update

# Method 2: Gentle approach - only add required repos, keep existing config
pig repo add pgsql                    # Add PGDG and Pigsty repos with cache update
pig repo add pigsty --region=china    # Add Pigsty repo, specify China region
pig repo add pgdg   --region=default  # Add PGDG, specify default region
pig repo add infra  --region=europe   # Add INFRA repo, specify Europe region

# If no -u|--update option above, run this command additionally
pig repo update                       # Update system package cache

Modules

In pig, APT/YUM repositories are organized into modules — groups of repositories serving a specific purpose.

ModuleDescriptionRepository List
allAll core modules needed to install PGnode + infra + pgsql
pgsqlPGDG + Pigsty PG extensionspigsty-pgsql + pgdg
pigstyPigsty Infra + PGSQL repospigsty-infra, pigsty-pgsql
pgdgPGDG official repositorypgdg-common, pgdg13-18
nodeLinux system repositoriesbase, updates, extras, epel…
infraInfrastructure component repospigsty-infra, nginx, docker-ce

repo add

Add repository configuration files to the system. Requires root/sudo privileges.

pig repo add pgdg                # Add PGDG repository
pig repo add pgdg pigsty         # Add multiple repositories
pig repo add all                 # Add all essential repos (pgdg + pigsty + node)
pig repo add pigsty -u           # Add and update cache
pig repo add all -r              # Remove existing repos before adding
pig repo add all -ru             # Remove, add, and update (complete reset)
pig repo add pgdg --region=china # Use China mirrors

Options:

  • -r|--remove: Remove existing repos before adding new ones
  • -u|--update: Run package cache update after adding repos
  • --region <region>: Use regional mirror repositories (default / china / europe)

repo set

Equivalent to repo add --remove --update. Wipes existing repositories and sets up new ones, then updates cache.

pig repo set                     # Replace with default repos
pig repo set pgdg pigsty         # Replace with specific repos and update
pig repo set all --region=china  # Use China mirrors

repo rm

Remove repository configuration files and back them up.

pig repo rm                      # Remove all repos
pig repo rm pgdg                 # Remove specific repo
pig repo rm pgdg pigsty -u       # Remove and update cache

repo update

Update package manager cache to reflect repository changes.

pig repo update                  # Update package cache
PlatformEquivalent Command
ELdnf makecache
Debianapt update

repo create

Create local package repository for offline installations.

pig repo create                  # Create at default location (/www/pigsty)
pig repo create /srv/repo        # Create at custom location

repo cache

Create compressed tarball of repository contents for offline distribution.

pig repo cache                   # Default: /www to /tmp/pkg.tgz
pig repo cache -f                # Force overwrite existing
pig repo cache -d /srv           # Custom source directory

repo boot

Extract and set up local repository from offline package.

pig repo boot                    # Default: /tmp/pkg.tgz to /www
pig repo boot -p /mnt/pkg.tgz   # Custom package path
pig repo boot -d /srv           # Custom target directory

Common Scenarios

Scenario 1: Fresh PostgreSQL Installation

# Setup repositories
sudo pig repo add -ru

# Install PostgreSQL 17
sudo pig ext install pg17

# Install popular extensions
sudo pig ext add pg_duckdb postgis timescaledb

Scenario 2: Air-gapped Environment

# On internet-connected machine:
sudo pig repo add -ru
sudo pig ext install pg17
sudo pig ext add pg_duckdb postgis
sudo pig repo create
sudo pig repo cache

# Transfer /tmp/pkg.tgz to air-gapped machine

# On air-gapped machine:
sudo pig repo boot
sudo pig repo add local
sudo pig ext install pg17
sudo pig ext add pg_duckdb postgis

Scenario 3: Using Regional Mirrors

# For users in China
sudo pig repo add all --region=china -u

# Check mirror URLs
pig repo info pgdg

Last modified 2026-01-06: batch update (cc9e058)