这是本节的多页打印视图。
点击此处打印.
返回本页常规视图.
扩展仓库
如何在 EL/Debian/Ubuntu 及其兼容操作系统上,使用 Pigsty 提供的插件仓库?
如果您使用 Pigsty 来部署 PostgreSQL 并安装扩展,那么您 并不需要 关心软件仓库的问题,Pigsty 会自动为您配置好一切。
但如果您想要独立使用 Pigsty 扩展仓库(例如为您现有的 PG 部署安装 400+ 额外扩展),那么本节内容将对您有所帮助。
PostgreSQL 全球开发组(PGDG)提供了的 PGDG YUM/APT 软件仓库,可以视作 PostgreSQL 的“官方”仓库仓库。
而 Pigsty 提供了一个补充软件仓库(类似于 EPEL 之于 RHEL),针对 PostgreSQL 扩展与生态工具,提供了额外的 RPM / DEB 包,并在构建规范上与 PGDG 仓库 保持一致。
目前 Pigsty 扩展仓库支持 x86_64/aarch64
架构,包括两个子仓库:pigsty-infra
与 pigsty-pgsql
,
前者包含了 OS 大版本无关的通用基础设施组件(例如 EL 7/8/9 都能用的 go 程序 vip-manager),
后者包含了 OS 大版本相关的 PostgreSQL 扩展,具体的支持范围为:EL 8/9, Debian 12,Ubuntu 22.04/24.04,总计 10 个发行版大版本架构组合。
在支持的操作系统上,我们提供 PostgreSQL 包管理器 pig
命令行工具,提供了 Pigsty 仓库/扩展管理功能的子集,可以帮助您管理软件仓库,并安装/卸载/更新/查询扩展。
当然 Pigsty 扩展仓库也同样支持传统/标准的 YUM / APT 仓库使用方式,使用 yum/dnf/apt 进行手工管理。
1 - YUM仓库
如何在 RHEL/Rocky 及其兼容操作系统上,使用 Pigsty 提供的 PostgreSQL 插件 YUM/DNF 仓库?
YUM仓库
对于 EL 8/9 及兼容系统,使用以下命令依次添加 Pigsty 仓库的 GPG 公钥,写入仓库定义,并更新缓存:
-
-
-
# 将 pigsty 的 gpg 公钥添加到你的系统钥匙链中,从而验证软件包签名
curl -fsSL https://repo.pigsty.cc/key | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty >/dev/null
# 向 /etc/yum.repos.d 目录中添加 Pigsty Repo 定义文件,包括两个仓库
sudo tee /etc/yum.repos.d/pigsty-cc.repo > /dev/null <<-'EOF'
[pigsty-infra]
name=Pigsty Infra for $basearch
baseurl=https://repo.pigsty.cc/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.cc/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
# 刷新 YUM/DNF 仓库缓存
sudo yum makecache;
# 将 pigsty 的 gpg 公钥添加到你的系统钥匙链中,从而验证软件包签名
curl -fsSL https://repo.pigsty.io/key | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty >/dev/null
# 向 /etc/yum.repos.d 目录中添加 Pigsty Repo 定义文件,包括两个仓库
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
# 刷新 YUM/DNF 仓库缓存
sudo yum makecache;
仓库内容
pigsty-pgsql
仓库包含以下内容:
- 208 个 PostgreSQL 扩展对应的 RPM 包(由 Pigsty 维护,未收录于 PGDG YUM 仓库中)
- 215 个 PostgreSQL 扩展对应的 DEB 包(由 Pigsty 维护,未收录于 PGDG APT 仓库中)
- haproxy 3.1
- redis 7.2
pigsty-infra
仓库包含以下内容:
2 - APT仓库
如何在 Debian/Ubuntu 及其兼容操作系统上,使用 Pigsty 提供的 PostgreSQL 插件 APT 仓库?
对于 Debian/Ubuntu 及其兼容系统,使用以下命令依次添加 Pigsty 仓库的 GPG 公钥,写入仓库定义,并更新缓存:
-
-
-
# 将 pigsty 的 gpg 公钥添加到你的系统钥匙链中,从而验证软件包签名
curl -fsSL https://repo.pigsty.cc/key | sudo gpg --dearmor -o /etc/apt/keyrings/pigsty.gpg
# 获取 Debian 发行版代号,distro_codename=jammy, focal, bullseye, bookworm,并将对应上游仓库地址写入 APT List 文件
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.cc/apt/infra generic main
deb [signed-by=/etc/apt/keyrings/pigsty.gpg] https://repo.pigsty.cc/apt/pgsql/${distro_codename} ${distro_codename} main
EOF
# 刷新 APT 仓库缓存
sudo apt update
# 将 pigsty 的 gpg 公钥添加到你的系统钥匙链中,从而验证软件包签名
curl -fsSL https://repo.pigsty.io/key | sudo gpg --dearmor -o /etc/apt/keyrings/pigsty.gpg
# 获取 Debian 发行版代号,distro_codename=jammy, focal, bullseye, bookworm,并将对应上游仓库地址写入 APT List 文件
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} main
EOF
# 刷新 APT 仓库缓存
sudo apt update
仓库内容
pigsty-pgsql
仓库包含以下内容:
- 208 个 PostgreSQL 扩展对应的 RPM 包(由 Pigsty 维护,未收录于 PGDG YUM 仓库中)
- 215 个 PostgreSQL 扩展对应的 DEB 包(由 Pigsty 维护,未收录于 PGDG APT 仓库中)
- haproxy 3.1
- redis 7.2
pigsty-infra
仓库包含以下内容:
3 - PIG命令
如何使用 pig 命令行工具来管理 PostgreSQL / Pigsty 扩展仓库?
您可以使用 Pigsty 提供的 pig
命令行工具,管理 Linux 操作系统上的软件仓库。使用以下命令 安装 pig
命令行工具:
curl https://repo.pigsty.cc/pig | bash
使用以下命令添加软件仓库,Pig 命令行工具会自动检测您的网络条件(墙内/墙外),并选择速度最快的镜像:
pig repo add pigsty # 添加 PIGSTY 仓库
pig repo add pgdg # 添加 PGDG 仓库
pig repo add pgsql # 添加 PGDG + PIGSTY 镜像源
pig repo add node # 添加操作系统默认软件仓库
pig repo add all # 添加 PIGSTY + PGDG + NODE 仓库
所有Repo 文件默认会写入 /etc/yum.repos.d/
(EL) 与 /etc/apt/sources.list.d/
(Debian/Ubuntu) 目录下。
您可以使用以下命令,向当前系统添加 PIGSTY + PGDG + NODE 仓库并更新软件仓库缓存:
pig repo add all -u # 添加 NODE + PGSQL 软件仓库并更新缓存
如果您想要清除并覆盖当前系统上的所有仓库,并重新添加 PIGSTY + PGDG + NODE 仓库,您可以使用以下命令:
pig repo add all -ru # remove + update
pig repo set # 上面命令的缩写
移除的现有 repo 文件会被自动备份到上述目录下的 backup
目录中。
我们建议使用这种方式来管理软件仓库,但如果您不想使用 Pigsty 提供的命令行工具,您也可以 手工添加 YUM/APT软件仓库。
4 - 签名密钥
在 YUM/APT 仓库中签名 RPM/DEB 软件包使用的 GPG 密钥
Pigsty 补充仓库中的所有 RPM/DEB 包都使用指纹为 (B9BD8B20
) 的 GPG 密钥进行签名。
完整摘要为:9592A7BC7A682E7333376E09E7935D8DB9BD8B20
Ruohang Feng (Pigsty) rh@vonng.com
pub rsa4096 2024-07-16 [SC]
9592A7BC7A682E7333376E09E7935D8DB9BD8B20
uid [ultimate] Ruohang Feng (Pigsty) <rh@vonng.com>
sub rsa4096 2024-07-16 [E]
导入公钥
在 RHEL/Rocky 兼容 Linux 发行版中,您可以使用以下命令导入此密钥:
-
-
-
curl -fsSL https://repo.pigsty.cc/key | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty >/dev/null
curl -fsSL https://repo.pigsty.io/key | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-pigsty >/dev/null
在 Debian/Ubuntu 兼容 Linux 发行版中,您可以使用以下命令导入此密钥:
-
-
-
curl -fsSL https://repo.pigsty.cc/key | sudo gpg --dearmor -o /etc/apt/keyrings/pigsty.gpg
curl -fsSL https://repo.pigsty.io/key | sudo gpg --dearmor -o /etc/apt/keyrings/pigsty.gpg
密钥内容
您可以在此处下载此公钥:
此密钥对应的公钥内容为:
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGaV5PwBEACbErI+7yOrsXTT3mR83O6Fw9WyHJqozhyNPF3dA1gAtWpfWqd4
S9x6vBjVwUbIRn21jYgov0hDiaLABNQhRzifvVr0r1IjBW8lhA8zJGaO42Uz0aBW
YIkajOklsXgYMX+gSmy5WXzM31sDQVMnzptHh9dwW067hMM5pJKDslu2pLMwSb9K
QgIFcYsaR0taBkcDg4dNu1gncriD/GcdXIS0/V4R82DIYeIqj2S0lt0jDTACbUz3
C6esrTw2XerCeHKHb9c/V+KMhqvLJOOpy/aJWLrTGBoaH7xw6v0qg32OYiBxlUj9
VEzoQbDfbRkR+jlxiuYP3scUs/ziKrSh+0mshVbeuLRSNfuHLa7C4xTEnATcgD1J
MZeMaJXIcDt+DN+1aHVQjY5YNvr5wA3ykxW51uReZf7/odgqVW3+1rhW5pd8NQKQ
qoVUHOtIrC9KaiGfrczEtJTNUxcNZV9eBgcKHYDXB2hmR2pIf7WvydgXTs/qIsXg
SIzfKjisi795Dd5GrvdLYXVnu9YzylWlkJ5rjod1wnSxkI/CcCJaoPLnXZA9KV7A
cpMWWaUEXP/XBIwIU+vxDd1taBIaPIOv1KIdzvG7QqAQtf5Lphi5HfaGvBud/CVt
mvWhRPJMr1J0ER2xAgU2iZR7dN0vSF6zDqc0W09RAoC0nDS3tupDX2BrOwARAQAB
tCRSdW9oYW5nIEZlbmcgKFBpZ3N0eSkgPHJoQHZvbm5nLmNvbT6JAlEEEwEIADsW
IQSVkqe8emguczM3bgnnk12Nub2LIAUCZpXk/AIbAwULCQgHAgIiAgYVCgkICwIE
FgIDAQIeBwIXgAAKCRDnk12Nub2LIOMuEACBLVc09O4icFwc45R3KMvOMu14Egpn
UkpmBKhErjup0TIunzI0zZH6HG8LGuf6XEdH4ItCJeLg5349UE00BUHNmxk2coo2
u4Wtu28LPqmxb6sqpuRAaefedU6vqfs7YN6WWp52pVF1KdOHkIOcgAQ9z3ZHdosM
I/Y/UxO2t4pjdCAfJHOmGPrbgLcHSMpoLLxjuf3YIwS5NSfjNDd0Y8sKFUcMGLCF
5P0lv5feLLdZvh2Una34UmHKhZlXC5E3vlY9bf/LgsRzXRFQosD0RsCXbz3Tk+zF
+j/eP3WhUvJshqIDuY6eJYCzMjiA8sM5gety+htVJuD0mewp+qAhjxE0d4bIr4qO
BKQzBt9tT2ackCPdgW42VPS+IZymm1oMET0hgZfKiVpwsKO6qxeWn4RW2jJ0zkUJ
MsrrxOPFdZQAtuFcLwa5PUAHHs6XQT2vzxDpeE9lInQ14lshofU5ZKIeb9sbvb/w
P+xnDqvZ1pcotEIBvDK0S0jHbHHqtioIUdDFvdCBlBlYP1TQRNPlJ7TJDBBvhj8i
fmjQsYSV1u36aHOJVGYNHv+SyJpVd3nHCZn97ADM9qHnDm7xljyHXPzIx4FMmBGJ
UTiLH5yxa1xhWr42Iv3TykaQJVbpydmBuegFR8WbWitAvVqI3HvRG+FalLsjJruc
8YDAf7gHdj/937kCDQRmleT8ARAAmJxscC76NZzqFBiaeq2+aJxOt1HGPqKb4pbz
jLKRX9sFkeXuzhfZaNDljnr2yrnQ75rit9Aah/loEhbSHanNUDCNmvOeSEISr9yA
yfOnqlcVOtcwWQK57n6MvlCSM8Js3jdoSmCFHVtdFFwxejE5ok0dk1VFYDIg6DRk
ZBMuxGO7ZJW7TzCxhK4AL+NNYA2wX6b+IVMn6CA9kwNwCNrrnGHR1sblSxZp7lPo
+GsqzYY0LXGR2eEicgKd4lk38gaO8Q4d1mlpX95vgdhGKxR+CM26y9QU0qrO1hXP
Fw6lX9HfIUkVNrqAa1mzgneYXivnLvcj8gc7bFAdweX4MyBHsmiPm32WqjUJFAmw
kcKYaiyfDJ+1wusa/b+7RCnshWc8B9udYbXfvcpOGgphpUuvomKT8at3ToJfEWmR
BzToYYTsgAAX8diY/X53BHCE/+MhLccglEUYNZyBRkTwDLrS9QgNkhrADaTwxsv1
8PwnVKve/ZxwOU0QGf4ZOhA2YQOE5hkRDR5uY2OHsOS5vHsd9Y6kNNnO8EBy99d1
QiBJOW3AP0nr4Cj1/NhdigAujsYRKiCAuPT7dgqART58VU4bZ3PgonMlziLe7+ht
YYxV+wyP6LVqicDd0MLLvG7r/JOiWuABOUxsFFaRecehoPJjeAEQxnWJjedokXKL
HVOFaEkAEQEAAYkCNgQYAQgAIBYhBJWSp7x6aC5zMzduCeeTXY25vYsgBQJmleT8
AhsMAAoJEOeTXY25vYsgG8sP/3UdsWuiwTsf/x4BTW82K+Uk9YwZDnUNH+4dUMED
bKT1C6CbuSZ7Mnbi2rVsmGzOMs9MehIx6Ko8/iCR2OCeWi8Q+wM+iffAfWuT1GK6
7f/VIfoYBUWEa+kvDcPgEbd5Tu7ZdUO/jROVBSlXRSjzK9LpIj7GozBTJ8Vqy5x7
oqbWPPEYtGDVHime8o6f5/wfhNgL3mFnoq6srK7KhwACwfTXlNqAlGiXGa30Yj+b
Cj6IvmxoII49E67/ovMEmzDCb3RXiaL6OATy25P+HQJvWvAam7Qq5Xn+bZg65Mup
vXq3zoX0a7EKXc5vsJVNtTlXO1ATdYszKP5uNzkHrNAN52VRYaowq1vPy/MVMbSI
rL/hTFKr7ZNhmC7jmS3OuJyCYQsfEerubtBUuc/W6JDc2oTI3xOG1S2Zj8f4PxLl
H7vMG4E+p6eOrUGw6VQXjFsH9GtwhkPh/ZGMKENb2+JztJ02674Cok4s5c/lZFKz
mmRUcNjX2bm2K0GfGG5/hAog/CHCeUZvwIh4hZLkdeJ1QsIYpN8xbvY7QP6yh4VB
XrL18+2sontZ45MsGResrRibB35x7IrCrxZsVtRJZthHqshiORPatgy+AiWcAtEv
UWEnnC1xBSasNebw4fSE8AJg9JMCRw+3GAetlotOeW9q7PN6yrXD9rGuV/QquQNd
/c7w
=4rRi
-----END PGP PUBLIC KEY BLOCK-----