CMD Docs
CMD Docs
The pig CLI provides comprehensive tools for managing PostgreSQL installations, extensions, repositories, and building extensions from source. Check command documentation with pig help <command>.
Manage software repositories
Manage postgres extensions
Build extension from source
Manage pigsty installation
Overview
pig - the Linux Package Manager for PostgreSQL
Usage:
pig [command]
Examples:
pig repo add -ru # overwrite existing repo & update cache
pig install pg17 # install postgresql 17 PGDG package
pig install pg_duckdb # install certain postgresql extension
pig install pgactive -v 18 # install extension for specifc pg major
check https://pgext.cloud for details
PostgreSQL Extension Manager
build Build Postgres Extension
ext Manage PostgreSQL Extensions (pgext)
repo Manage Linux Software Repo (apt/dnf)
install Install packages using native package manager
Additional Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
status Show Environment Status
update Upgrade pig itself
version Show pig version info
Flags:
--debug enable debug mode
-h, --help help for pig
-H, --home string pigsty home path
-i, --inventory string config inventory path
--log-level string log level: debug, info, warn, error, fatal, panic (default "info")
--log-path string log file path, terminal by default
Use "pig [command] --help" for more information about a command.Quick Start Guide
1. Setup Repositories
Before installing PostgreSQL or extensions, you need to configure package repositories:
# Quick setup - add all essential repos (pgdg + pigsty + node)
sudo pig repo add -ru
# Alternative: add specific repos
sudo pig repo add pgdg pigsty -u2. Install PostgreSQL
# Install PostgreSQL 17
sudo pig ext install pg17
# Link to system PATH
sudo pig ext link 173. Install Extensions
# Search for extensions
pig ext list # List all
pig ext list duckdb # Search specific
# Install extensions
sudo pig ext add pg_duckdb postgis pgvector4. Build Extensions (Optional)
# Setup build environment
pig build spec
# Build an extension
pig build pkg citusCore Commands
pig repo - Repository Management
Manage APT/YUM repositories for PostgreSQL packages:
pig repo list # List available repositories
pig repo info pgdg # Show repository details
pig repo status # Check current repo status
pig repo add pgdg pigsty -u # Add repositories
pig repo rm old-repo # Remove repositories
pig repo update # Update package cache
pig repo create /www/pigsty # Create local repository
pig repo cache # Create offline package
pig repo boot # Bootstrap from offline packageKey Features:
- Support for both RPM (EL) and DEB (Debian/Ubuntu) systems
- Regional mirrors (China, etc.)
- Offline package support
- Module-based repository organization
pig ext - Extension Management
Manage PostgreSQL extensions and kernel packages:
pig ext list duck # Search extensions
pig ext info pg_duckdb # Extension details
pig ext status # Show installed extensions
pig ext add pg_duckdb -y # Install extension
pig ext rm old_extension # Remove extension
pig ext update # Update extensions
pig ext scan # Scan installed extensions
pig ext import pg_duckdb # Download for offline use
pig ext link 17 # Link PG version to PATH
pig ext reload # Refresh extension catalogKey Features:
- 400+ PostgreSQL extensions
- Multi-version PostgreSQL support
- Automatic dependency resolution
- Category-based browsing
- Offline installation support
pig build - Build Extensions
Build PostgreSQL extensions from source:
# Environment setup
pig build spec # Initialize build specs
pig build repo # Setup repositories
pig build tool # Install build tools
pig build rust -y # Install Rust (for Rust extensions)
pig build pgrx # Install PGRX framework
# Build extensions
pig build pkg citus # Complete build pipeline
pig build get citus # Download source
pig build dep citus # Install dependencies
pig build ext citus # Build packageKey Features:
- Support for 100+ extensions
- RPM and DEB package generation
- Rust/PGRX extension support
- Multi-PostgreSQL version builds
- Custom extension support
pig sty - Pigsty Management
Manage Pigsty PostgreSQL distribution:
pig sty init # Install Pigsty to ~/pigsty
pig sty boot # Install Ansible prerequisites
pig sty conf # Generate configuration
pig sty install # Run installation playbookPigsty Features:
- Battery-included PostgreSQL distribution
- High Availability with Patroni
- Point-In-Time Recovery (PITR)
- Comprehensive monitoring stack
- Infrastructure as Code (IaC)
Common Workflows
Installing PostgreSQL with Extensions
# 1. Setup repositories
sudo pig repo add -ru
# 2. Install PostgreSQL 17
sudo pig ext install pg17
sudo pig ext link 17
# 3. Install popular extensions
sudo pig ext add pg_duckdb postgis pgvector timescaledb
# 4. Verify installation
pig ext statusBuilding Custom Extensions
# 1. Setup build environment
pig build spec
pig build tool
# 2. Build extension
pig build pkg my_extension
# 3. Install built package
sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/my_extension*.rpm # EL
sudo dpkg -i ~/my_extension*.deb # DebianOffline Installation
# On online machine:
sudo pig repo add -ru
pig ext import pg17 pg_duckdb postgis
pig repo create
pig repo cache
# Transfer /tmp/pkg.tgz to offline machine
# On offline machine:
pig repo boot
sudo pig repo add local
sudo pig ext install pg17
sudo pig ext add pg_duckdb postgisEnvironment Detection
The pig tool automatically detects your environment:
pig status # Show comprehensive statusDetected Information:
- Operating System (EL/Debian/Ubuntu)
- OS Version and Architecture
- PostgreSQL installations
- Active PostgreSQL version
- Installed extensions
- Repository configuration
Best Practices
- Always Update Repos First: Run
pig repo add -rubefore installing - Use Version Flags: Specify PostgreSQL version with
-vwhen needed - Check Compatibility: Use
pig ext infobefore installation - Backup Before Changes: Create backups before major updates
- Test in Development: Test extensions in dev before production
- Keep Catalog Updated: Run
pig ext reloadperiodically - Document Your Stack: Keep records of installed extensions
- Use Offline Packages: Prepare offline packages for air-gapped systems
- Build When Needed: Use build commands for custom or newer versions
- Monitor After Changes: Check logs after installations
Getting Help
# General help
pig help
# Command-specific help
pig repo --help
pig ext --help
pig build --help
# Subcommand help
pig ext add --help
pig repo info --help
pig build pkg --helpFor issues and feedback, visit: https://github.com/pgsty/pig/issues
Last updated on