Ubuntu18为PostgreSQL12安装pg_partman、pg_squeeze报错求助
可行解决方案
方案一:直接安装预编译扩展包(优先推荐,无需编译、无风险)
Ubuntu 18 官方PostgreSQL源已提供pg_partman和pg_squeeze对应PostgreSQL 12的预编译包,无需手动编译,也不需要安装postgresql-server-dev-12,完全不会触碰现有PostgreSQL 12的运行环境和数据,操作步骤如下:
- 先更新包列表:
sudo apt update - 直接安装对应版本扩展:
sudo apt install postgresql-12-partman postgresql-12-squeeze - 安装完成后登录PostgreSQL 12实例,在目标业务库下执行命令创建扩展即可:
CREATE EXTENSION pg_partman; CREATE EXTENSION pg_squeeze;
方案二:添加官方源后安装dev依赖(适合需要自定义编译最新版扩展的场景)
如果必须手动编译扩展的特定版本,可通过添加PostgreSQL官方源解决依赖冲突问题,操作全程不会卸载现有PostgreSQL 12服务、也不会修改现有数据:
- 导入官方GPG密钥、添加源配置:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - - 更新包列表后即可正常安装dev依赖:
sudo apt update sudo apt install postgresql-server-dev-12 - 安装完成后回到
/etc/pg_partman路径,重新执行sudo make && sudo make install即可完成扩展编译安装,pg_squeeze扩展也可以用相同的流程编译。
方案三:手动安装缺失依赖(适合服务器无法访问外部源的场景)
如果服务器受限无法添加PostgreSQL官方源,可手动下载对应架构的clang-6.0、llvm-6.0、llvm-6.0-dev三个deb包到本地,执行dpkg命令本地安装依赖后,再重新安装postgresql-server-dev-12即可。
操作前置提示
所有操作开始前建议先对PostgreSQL 12的业务数据做全量备份,可使用pg_dumpall备份全局对象,pg_dump单独备份业务库,避免极端场景出现数据异常。
内容的提问来源于stack exchange,提问作者Omer Farooq
相关产品推荐
相关产品推荐

