Ubuntu 安装 PostgreSQL 18
使用 Ubuntu 自带包或 PostgreSQL 官方 Apt 仓库安装并验证 PostgreSQL
Ubuntu 自带 PostgreSQL 包,但其 major 版本由 Ubuntu 发行版快照决定。如果只需要该发行版维护的默认版本:
sudo apt update
sudo apt install postgresql postgresql-client软件包快照证据 · PkgSeek
Ubuntu 默认 postgresql 元包
| 发行版 | 版本 | 索引版本 | 仓库 | 关联公告 |
|---|---|---|---|---|
| Ubuntu | focal | 12+214 | official / main | — |
| Ubuntu | jammy | 14+238 | official / main | — |
| Ubuntu | noble | 16+257build1 | official / main | — |
| Ubuntu | resolute | 18+290ubuntu1 | official / main | — |
这个快照说明不同 Ubuntu release 的默认 major 并不相同。postgresql 是跟随发行版的元包,不等于永远安装 PostgreSQL 18。完整区别见 Linux 软件包与 PGDG。
明确安装 PostgreSQL 18
需要指定 major 时,使用 PostgreSQL 项目维护的 Apt 仓库。官方提供自动配置脚本:
sudo apt install -y postgresql-common ca-certificates
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
sudo apt update
sudo apt install postgresql-18 postgresql-client-18执行脚本前阅读其输出并确认系统版本受支持。命令和当前支持的 Ubuntu 版本以 PostgreSQL Ubuntu 下载页 为准。
软件包快照证据 · PkgSeek
PkgSeek:Ubuntu / PGDG / postgresql-18
PkgSeek 没有为这个坐标返回准确匹配。这只表示“当前快照未收录”,不等于“软件包不存在”;执行操作前仍需核对上游仓库。
若卡片没有返回准确的 PGDG 坐标,不能把空结果解释为软件包不存在。安装前以 PGDG 仓库元数据和 PostgreSQL 官方下载页复核;本站保留空状态,是为了显式暴露数据覆盖边界,而不是用推测补齐。
验证服务和集群
systemctl status postgresql --no-pager
pg_lsclusters
sudo -u postgres psql -X -d postgres \
-c "select version(), current_setting('data_directory');"postgresql.service 是集群管理入口;具体实例通常对应 postgresql@18-main。pg_lsclusters 属于 Debian/Ubuntu 的 postgresql-common 工具,不是所有 Linux 发行版都有。
创建一个本地练习角色和数据库:
sudo -u postgres createuser --pwprompt learner
sudo -u postgres createdb --owner=learner learner
psql -X -h localhost -U learner -d learner -c "select current_user;"不要直接编辑到全网可连
远程连接需要同时考虑 listen_addresses、pg_hba.conf、防火墙和 TLS。修改前保存原配置,规则从具体网段/数据库/角色写起,并同时测试允许和拒绝路径。
升级边界
apt upgrade 可以安装同一 major 的 minor 修复;从 17 到 18 是大版本升级,需要 pg_upgrade、逻辑 dump/restore 或逻辑复制,不能只替换软件包后复用数据目录。
Last updated on