# Linux Repository

> The APT / DNF repository to deliver PostgreSQL Kernel, Extensions and Infra packages.

---

LLMS index: [llms.txt](/llms.txt)

---

Pigsty has a repository that provides additional PostgreSQL extension packages on mainstream [Linux Distros](/docs/ref/linux).
It is designed to work together with the official PostgreSQL Global Development Group ([PGDG](https://www.postgresql.org/download/linux/)) repo.
Together, they can provide [576 packaged PostgreSQL extensions](/ext/) out-of-the-box.

|   PGSQL Repo   |                                 Description                                  |             Link              |
|:--------------:|:----------------------------------------------------------------------------:|:-----------------------------:|
| **PGSQL** Repo | [Pigsty Extension Repo](/docs/repo/pgsql/), supplementary extension packages | [pgsql.md](/docs/repo/pgsql/) |
| **INFRA** Repo |      [Pigsty Infrastructure Repo](/docs/repo/infra/), monitoring/tools       | [infra.md](/docs/repo/infra/) |
| **PGDG** Repo  |           [PGDG Official Repo Mirror](/docs/repo/pgdg/), PG Kernel           |  [pgdg.md](/docs/repo/pgdg/)  |
|  **GPG** Key   |          [GPG Public Key](/docs/repo/gpg/), signature verification           |   [gpg.md](/docs/repo/gpg/)   |


---------

## Compatibility Overview

|  OS / Arch   |  OS  |                 x86_64                 |                aarch64                 |
|:------------:|:----:|:--------------------------------------:|:--------------------------------------:|
|     EL8      | el8  | **18**, **17**, **16**, **15**, **14** | **18**, **17**, **16**, **15**, **14** |
|     EL9      | el9  | **18**, **17**, **16**, **15**, **14** | **18**, **17**, **16**, **15**, **14** |
|     EL10     | el10 | **18**, **17**, **16**, **15**, **14** | **18**, **17**, **16**, **15**, **14** |
|  Debian 12   | d12  | **18**, **17**, **16**, **15**, **14** | **18**, **17**, **16**, **15**, **14** |
|  Debian 13   | d13  | **18**, **17**, **16**, **15**, **14** | **18**, **17**, **16**, **15**, **14** |
| Ubuntu 22.04 | u22  | **18**, **17**, **16**, **15**, **14** | **18**, **17**, **16**, **15**, **14** |
| Ubuntu 24.04 | u24  | **18**, **17**, **16**, **15**, **14** | **18**, **17**, **16**, **15**, **14** |
| Ubuntu 26.04 | u26  | **18**, **17**, **16**, **15**, **14** | **18**, **17**, **16**, **15**, **14** |


---------

## Get Started

You can enable the pigsty [infra](/docs/repo/infra/) & [pgsql](/docs/repo/pgsql/) repo with the [pig](/docs/pig/) CLI tool:

```bash {tab="Default" group="default-mirror" value="default"}
curl https://repo.pigsty.io/pig | bash      # download and install the pig CLI tool
pig repo add all -u                         # add linux, pgdg, pigsty repo and update cache
```

```bash {tab="Mirror" value="mirror"}
curl https://repo.pigsty.cc/pig | bash      # download from mirror site
pig repo add -u                             # add linux, pgdg, pigsty repo and update cache
```


---------

## Manual Install

You can also add these repos to your system [manually](#manual-install) with the default `apt`, `dnf`, `yum` approach.

```bash {tab="APT" group="apt-yum" value="apt"}
# Add Pigsty's GPG public key to your system keychain to verify package signatures
curl -fsSL https://repo.pigsty.io/key | sudo gpg --dearmor -o /etc/apt/keyrings/pigsty.gpg

# Get Debian / Ubuntu distribution codename (bookworm, trixie, jammy, noble, resolute), and write the corresponding upstream repository address to the APT List file
distro_codename=$(lsb_release -cs)
sudo tee /etc/apt/sources.list.d/pigsty-io.list > /dev/null <<EOF
deb [signed-by=/etc/apt/keyrings/pigsty.gpg] https://repo.pigsty.io/apt/infra generic main
deb [signed-by=/etc/apt/keyrings/pigsty.gpg] https://repo.pigsty.io/apt/pgsql/${distro_codename} ${distro_codename} main
EOF

# Refresh APT repository cache
sudo apt update
```

```bash {tab="YUM" value="yum"}
# Add Pigsty's GPG public key to your system keychain to verify package signatures
curl -fsSL https://repo.pigsty.io/key | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty >/dev/null

# Add Pigsty Repo definition files to /etc/yum.repos.d/ directory, including two repositories
sudo tee /etc/yum.repos.d/pigsty-io.repo > /dev/null <<-'EOF'
[pigsty-infra]
name=Pigsty Infra for $basearch
baseurl=https://repo.pigsty.io/yum/infra/$basearch
skip_if_unavailable = 1
enabled = 1
priority = 1
gpgcheck = 1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty
module_hotfixes=1

[pigsty-pgsql]
name=Pigsty PGSQL For el$releasever.$basearch
baseurl=https://repo.pigsty.io/yum/pgsql/el$releasever.$basearch
skip_if_unavailable = 1
enabled = 1
priority = 1
gpgcheck = 1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty
module_hotfixes=1
EOF

# Refresh YUM/DNF repository cache
sudo yum makecache;
```

All the RPM / DEB packages are signed with [GPG Key](/docs/repo/gpg/) fingerprint (`B9BD8B20`) in Pigsty repository.


---------

## Repository Components

Pigsty has two major repos: [**INFRA**](/docs/repo/infra/) and [**PGSQL**](/docs/repo/pgsql/),
providing DEB / RPM packages for `x86_64` and `aarch64` architecture.

The [**INFRA**](/docs/repo/infra/) repo contains packages that are generic to any PostgreSQL version and Linux major version,
including Prometheus & Grafana stack, admin tools for Postgres, and many utilities written in Go.

| Linux  | Package | x86_64 | aarch64 |
|:------:|:-------:|:------:|:-------:|
|   EL   |  `rpm`  |   ✓    |    ✓    |
| Debian |  `deb`  |   ✓    |    ✓    |

The [**PGSQL**](/docs/repo/pgsql/) repo contains packages that are ad hoc to specific PostgreSQL Major Versions
(often ad hoc to a specific Linux distro major version, too). Including extensions and some kernel forks.


---------

## Compatibility Details

|    OS Code     | Vendor | Major |  Minor  | Fullname          |          PG Major Version          | Comment  |
|:--------------:|:-------|:-----:|:-------:|:------------------|:----------------------------------:|:--------:|
|  `el7.x86_64`  | EL     |   7   |   7.9   | CentOS 7 x86      |              15 14 13              |   EOL    |
|  `el8.x86_64`  | EL     |   8   |  8.10   | RockyLinux 8 x86  | **18** **17** **16** **15** **14** | Near EOL |
| `el8.aarch64`  | EL     |   8   |  8.10   | RockyLinux 8 ARM  | **18** **17** **16** **15** **14** | Near EOL |
|  `el9.x86_64`  | EL     |   9   |   9.8   | RockyLinux 9 x86  | **18** **17** **16** **15** **14** |    OK    |
| `el9.aarch64`  | EL     |   9   |   9.8   | RockyLinux 9 ARM  | **18** **17** **16** **15** **14** |    OK    |
| `el10.x86_64`  | EL     |  10   |  10.2   | RockyLinux 10 x86 | **18** **17** **16** **15** **14** |    OK    |
| `el10.aarch64` | EL     |  10   |  10.2   | RockyLinux 10 ARM | **18** **17** **16** **15** **14** |    OK    |
|  `d11.x86_64`  | Debian |  11   |  11.11  | Debian 11 x86     |           17 16 15 14 13           |   EOL    |
| `d11.aarch64`  | Debian |  11   |  11.11  | Debian 11 ARM     |           17 16 15 14 13           |   EOL    |
|  `d12.x86_64`  | Debian |  12   |  12.15  | Debian 12 x86     | **18** **17** **16** **15** **14** |    OK    |
| `d12.aarch64`  | Debian |  12   |  12.15  | Debian 12 ARM     | **18** **17** **16** **15** **14** |    OK    |
|  `d13.x86_64`  | Debian |  13   |  13.6   | Debian 13 x86     | **18** **17** **16** **15** **14** |    OK    |
| `d13.aarch64`  | Debian |  13   |  13.6   | Debian 13 ARM     | **18** **17** **16** **15** **14** |    OK    |
|  `u22.x86_64`  | Ubuntu |  22   | 22.04.5 | Ubuntu 22.04 x86  | **18** **17** **16** **15** **14** |    OK    |
| `u22.aarch64`  | Ubuntu |  22   | 22.04.5 | Ubuntu 22.04 ARM  | **18** **17** **16** **15** **14** |    OK    |
|  `u24.x86_64`  | Ubuntu |  24   | 24.04.4 | Ubuntu 24.04 x86  | **18** **17** **16** **15** **14** |    OK    |
| `u24.aarch64`  | Ubuntu |  24   | 24.04.4 | Ubuntu 24.04 ARM  | **18** **17** **16** **15** **14** |    OK    |
|  `u26.x86_64`  | Ubuntu |  26   | 26.04.0 | Ubuntu 26.04 x86  | **18** **17** **16** **15** **14** |    OK    |
| `u26.aarch64`  | Ubuntu |  26   | 26.04.0 | Ubuntu 26.04 ARM  | **18** **17** **16** **15** **14** |    OK    |


---------

## Source

Building specs of these repos and packages are open-sourced on GitHub:

- https://github.com/pgsty/rpm
- https://github.com/pgsty/deb
- https://github.com/pgsty/infra-pkg

---

Section pages:

- [PGDG Repo](/docs/repo/pgdg/): The official PostgreSQL APT/YUM repository
- [GPG Key](/docs/repo/gpg/): Import the GPG key for Pigsty repository
- [INFRA Repo](/docs/repo/infra/): Packages that are generic to any PostgreSQL version and Linux major version.
- [PGSQL Repo](/docs/repo/pgsql/): The repo for PostgreSQL Extensions & Kernel Forks
