# Compatibility

> Supported operating systems, kernels & arch, PostgreSQL major versions and feature sets.
---

----------------

##  Overview

Pigsty recommends using **Linux** kernel, **amd64** arch, and **RockyLinux 8.9**, **Debian 12** or **Ubuntu 22.04** as base OS.

[**Kernel Architecture Compatibility**](#kernel--arch-support): `Linux` kernel, `amd64` architecture (`x86_64`)

[**EL Distribution Support**](#el-distribution-support): **EL7**, **EL8**, **EL9**; (RHEL, Rocky, CentOS, Alma, Oracle, Anolis,...)

[**Debian Distribution Support**](#debian-distribution-support): **Ubuntu 22.04** `jammy`, **20.04** `focal`; **Debian 12** `bookworm` and **11** `bullseye`.

Pigsty does not use any virtualization or containerization technologies, running directly on the bare OS. Supported operating systems include EL 7/8/9 (RHEL, Rocky, CentOS, Alma, Oracle, Anolis,...),
Ubuntu 20.04 / 22.04 & Debian 11/12. **EL** is our long-term supported OS, while support for Ubuntu/Debian systems was introduced in the recent v2.5 version.
The main difference between EL and Debian distributions is the significant variation in package names, as well as the default availability of PostgreSQL [**extensions**](/docs/reference/extension/).

We strongly recommend using **RockyLinux 8.9** or **Ubuntu 22.04.3 LTS** as the OS for Pigsty.
We have prepared [**offline packages**](/docs/setup/offline#offline-package) for these specific minor versions of OS distros.
This ensures a stable, reliable, and smooth installation even without internet access.
Using other operating system distributions for the standard [installation](/docs/setup/install) requires Internet access to download and build a local repo.

If you have advanced compatibility requirements, such as using specific operating system distributions, major versions, or minor versions, we offer advance [**compatibility support**](/docs/about/service/) options.



----------------

## Kernel & Arch Support

Currently, Pigsty only supports the **Linux** kernel and the `x86_64` / `amd64` chip architecture.

MacOS and Windows operating systems can install Pigsty via Linux virtual machines/containers. We provide [**Vagrant**](/docs/setup/provision/) local sandbox support, allowing you to use virtualization software like Vagrant and Virtualbox to effortlessly bring up the deployment environment required by Pigsty on other operating systems.

**Experimental ARM64 Support**


We are piloting partial support for `arm64` architecture with our [**subscription service**](/docs/about/service/),




----------------

## EL Distribution Support

The **EL** series operating systems are Pigsty's primary support target, including compatible distributions such as Red Hat Enterprise Linux, RockyLinux, CentOS, AlmaLinux, OracleLinux, Anolis, etc. Pigsty supports the latest three major versions: **7**, **8**, **9**

- **EL9**: RHEL, RockyLinux, AlmaLinux (<i class="fas fa-star text-secondary"></i>Rocky 9.3 recommended)
- **EL8**: RHEL, RockyLinux, AlmaLinux, Anolis (Rocky 8.9 recommended)
- **EL7**: RHEL, CentOS 7.9 (CentOS 7.9 recommended)

|  Code   | EL Distros                        | Minor |                                                    PG16 |                       PG15                       |                   PG14                    |                   PG13                    |                   PG12                    | Limitation                                                                                               |
|:-------:|-----------------------------------|-------|--------------------------------------------------------:|:------------------------------------------------:|:-----------------------------------------:|:-----------------------------------------:|:-----------------------------------------:|----------------------------------------------------------------------------------------------------------|
| **EL8** | RHEL 8 / Rocky8 / Alma8 / Anolis8 | 8.9   |        <i class="fas fa-circle-check text-primary"></i> |    <i class="fas fa-check text-primary"></i>     | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-star text-secondary"></i> **Standard Feature Set**                                      |
| **EL9** | RHEL 9 / Rocky9 / Alma9           | 9.3   |        <i class="fas fa-circle-check text-primary"></i> |    <i class="fas fa-check text-primary"></i>     | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-triangle-exclamation text-secondary"></i> Missing `pgxnclient`, `perf` deps broken      |
| **EL7** | RHEL7 / CentOS7                   | 7.9   | <i class="fas fa-triangle-exclamation text-danger"></i> | <i class="fas fa-circle-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-triangle-exclamation text-danger"></i> PG16, supabase, pgml, duckdb_fdw,... unavailable |

**RockyLinux 8.9 Recommended**

 <i class="fas fa-star text-secondary"></i>
Rocky 8.9 achieves a good balance between system reliability/stability and the novelty/comprehensiveness of software versions. It's recommended for EL series users to default to this system version.


**Use EL7 with Caution**

<i class="fas fa-triangle-exclamation text-danger"></i>
Red Hat Enterprise Linux 7 will end maintenance in June 2024 [end of maintenance](https://www.redhat.com/en/blog/end-maintenance-red-hat-enterprise-linux-7-almost-here), and PGDG will no longer provide binary package support for PostgreSQL 16 on EL7.





----------------

## Debian Distribution Support

Pigsty supports **Ubuntu** / **Debian** series operating systems and their compatible distributions, currently supporting the two most recent LTS major versions, namely:

- **U22**: Ubuntu 22.04 LTS jammy (22.04.3 Recommended)
- **U20**: Ubuntu 20.04 LTS focal (20.04.6)
- **D12**: Debian 12 bookworm (12.4)
- **D11**: Debian 11 bullseye (11.8)

|  Code   | Debian Distros       | Minor   |                                             PG16 |                   PG15                    |                   PG14                    |                   PG13                    |                   PG12                    | Limitations                                                                                            |
|:-------:|----------------------|---------|-------------------------------------------------:|:-----------------------------------------:|:-----------------------------------------:|:-----------------------------------------:|:-----------------------------------------:|--------------------------------------------------------------------------------------------------------|
| **U22** | Ubuntu 22.04 (jammy) | 22.04.3 | <i class="fas fa-circle-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-star text-secondary"></i>  Standard Debian series feature set                         |
| **U20** | Ubuntu 20.04 (focal) | 20.04.6 | <i class="fas fa-circle-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-triangle-exclamation text-secondary"></i> Some extensions require online installation |
| **D12** | Debian 12 (bookworm) | 12.4    | <i class="fas fa-circle-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> |                                                                                                        |
| **D11** | Debian 11 (bullseye) | 11.8    | <i class="fas fa-circle-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> | <i class="fas fa-check text-primary"></i> |                                                                                                        |

**Ubuntu 22.04 LTS Recommended**

 <i class="fas fa-star text-secondary"></i>
Ubuntu 22.04 comes with unique extension support, such as `pg_graphql`, `pg_net`, `pg_bm25`, `pg_analytics`, `pg_sparse`.
PostgresML has official support for the AL/ML extension `pgml` for Ubuntu 22.04, so users with related needs are advised to use Ubuntu 22.04.3. 

**Use Ubuntu 20.04 LTS with Caution**

 <i class="fas fa-triangle-exclamation text-secondary"></i>
Ubuntu 20.04 has missing dependencies for the `postgresql-16-postgis` and `postgresql-server-dev-16` packages, requiring online installation in a connected environment.
If your environment does not have internet access, and you need to use the PostGIS extension, please use this operating system with caution. 



----------------

## Vagrant Boxes

When deploying Pigsty on cloud servers, you might consider using the following operating system images in Vagrant, which are also the images used for Pigsty's development, testing, and building.

- [`generic/centos7`](https://app.vagrantup.com/generic/boxes/centos7)： CentOS 7.9
- [`generic/rocky8`](https://app.vagrantup.com/generic/boxes/rocky8)： Rocky 8.9
- [`generic/rocky9`](https://app.vagrantup.com/generic/boxes/rocky9)： Rocky 9.3
- [`generic/debian11`](https://app.vagrantup.com/generic/boxes/debian11)： Debian 11.8
- [`generic/debian12`](https://app.vagrantup.com/generic/boxes/debian12)： Debian 12.4
- [`generic/ubuntu2004`](https://app.vagrantup.com/generic/boxes/ubuntu2004)： Ubuntu 20.04.6
- [`generic/ubuntu2204`](https://app.vagrantup.com/generic/boxes/ubuntu2204)： Ubuntu 22.04.3


----------------

## Terraform Images

When deploying Pigsty on cloud servers, you might consider using the following operating system base images in Terraform, using Alibaba Cloud as an example:

- CentOS 7.9     :  `centos_7_9_x64_20G_alibase_20231220.vhd`
- Rocky 8.9      :  `rockylinux_8_9_x64_20G_alibase_20231221.vhd`
- Rocky 9.3      :  `rockylinux_9_3_x64_20G_alibase_20231221.vhd`
- Ubuntu 20.04.3 :  `ubuntu_20_04_x64_20G_alibase_20231221.vhd`
- Ubuntu 22.04.6 :  `ubuntu_22_04_x64_20G_alibase_20231221.vhd`
- Debian 11.7    :  `debian_11_7_x64_20G_alibase_20230907.vhd`
- Debian 12.4    :  `debian_12_4_x64_20G_alibase_20231220.vhd`
- Anolis 8.8     :  `anolisos_8_8_x64_20G_rhck_alibase_20230804.vhd`



----------------

## References

- [Which EL Series Operating System Has the Best Compatibility?](https://pigsty.cc/blog/db/rhel-compatibility/)
