描述

Ubuntu 18.04安装14.4版本的PostgreSQL数据库,由于官方库只有最新版本的数据库,所以这里需要配置存档存储库,然后安装时指定具体的版本号,进行安装。

一.安装PostgreSQL 14.4版本

1.配置apt源

配置apt源,创建/etc/apt/sources.list.d/pgdg.list文件,添加官方存储库

deb http://apt.postgresql.org/pub/repos/apt bionic-pgdg main

问题:

配置apt源后,apt update提示,签名验证失败。

166 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://apt.postgresql.org/pub/repos/apt bionic-pgdg InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7FCC7D46ACCC4CF8
W: Failed to fetch http://apt.postgresql.org/pub/repos/apt/dists/bionic-pgdg/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7FCC7D46ACCC4CF8
W: Some index files failed to download. They have been ignored, or old ones used instead.

重新导入key

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

安装命令(这样安装是安装的最新的key)

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 -
sudo apt-get update
sudo apt-get -y install postgresql

2.配置存档存储库

需要安装14.4版本,这里最新的包是14.7,需要配置存档存储库进行指定版本安装。

官方源只有

postgresql-14 | 14.7-1.pgdg18.04+1 | http://apt.postgresql.org/pub/repos/apt bionic-pgdg/main amd64 Packages

需要配置存档存储库

# 添加旧包存档
$ cat pgdg.list
# 最新包
deb http://apt.postgresql.org/pub/repos/apt bionic-pgdg main

# 添加历史包
deb https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive main
deb-src https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive main

更新apt存储库

sudo apt update

查看PostgreSQL 14软件包,存在多个版本

user@KMYKDXDYYY-SYNC-001:/etc/apt/sources.list.d$ apt-cache madison postgresql-14
postgresql-14 | 14.7-1.pgdg18.04+1 | http://apt.postgresql.org/pub/repos/apt bionic-pgdg/main amd64 Packages
postgresql-14 | 14.7-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14.6-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14.5-2.pgdg18.04+2 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14.5-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14.4-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14.3-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14.2-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14.1-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14.0-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14~rc1-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14~beta3-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14~beta2-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14~beta1-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main amd64 Packages
postgresql-14 | 14~beta1-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14~beta2-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14~beta3-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14~rc1-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14.0-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14.1-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14.2-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14.3-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14.4-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14.5-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14.5-2.pgdg18.04+2 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14.6-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources
postgresql-14 | 14.7-1.pgdg18.04+1 | https://apt-archive.postgresql.org/pub/repos/apt bionic-pgdg-archive/main Sources

3.安装指定版本14.4-1.pgdg18.04+1

sudo apt install postgresql-14=14.4-1.pgdg18.04+1

但是默认安装,postgresql-client-14还是14.7,指定版本安装

sudo apt install postgresql-14=14.4-1.pgdg18.04+1 postgresql-client-14=14.4-1.pgdg18.04+1

安装后验证,已安装指定版本

user@localhost:/etc/apt/sources.list.d$ sudo apt install postgresql-14=14.4-1.pgdg18.04+1 postgresql-client-14=14.4-1.pgdg18.04+1
user@localhost:/etc/apt/sources.list.d$ dpkg -l|grep postgresql
rc  pgdg-keyring                           2018.2                                                 all          keyring for apt.postgresql.org
ii  postgresql-14                          14.4-1.pgdg18.04+1                                     amd64        The World's Most Advanced Open Source Relational Database
ii  postgresql-client-14                   14.4-1.pgdg18.04+1                                     amd64        front-end programs for PostgreSQL 14
ii  postgresql-client-common               248.pgdg18.04+1                                        all          manager for multiple PostgreSQL client versions
ii  postgresql-common                      248.pgdg18.04+1                                        all          PostgreSQL database-cluster manager

二.安装postgresql-server-dev-14

1.原因

因为后续如果要安装数据库工具,可能需要postgresql-server-dev-14包进行编译。如果是联网机器,后续安装可能也比较简单,但是离线机器,后续再安装比较麻烦,所以在制作离线安装包的过程中,可以将相关的dev包一并打包。

2.安装

安装 postgresql-server-dev-14=14.4-1.pgdg18.04+1 ,依赖于 libpq-dev=14.4-1.pgdg18.04+1libpq-dev依赖于 libpq5

因为这里想要安装相同版本的包,即14.4-1.pgdg18.04+1,但是libpq5已经默认安装了15.2-1.pgdg18.04+1,如果卸载的话,会把数据库卸载掉,不能卸载,只能降级。

libpq5已默认安装15.2-1.pgdg18.04+1版本。

user@localhost:/var/cache/apt/archives$ dpkg -l|grep libpq5
ii  libpq5:amd64                           15.2-1.pgdg18.04+1                                     amd64        PostgreSQL C client library

为了版本统一,这里在安装 postgresql-server-dev-14=14.4-1.pgdg18.04+1 libpq-dev=14.4-1.pgdg18.04+1 的时候,指定了libpq5的版本(libpq5=14.4-1.pgdg18.04+1

最终安装命令

sudo apt install postgresql-server-dev-14=14.4-1.pgdg18.04+1 libpq-dev=14.4-1.pgdg18.04+1 libpq5=14.4-1.pgdg18.04+1 -d

3.效果

安装指定版本的postgresql-server-dev-14libpq-dev,同时对libpq5降级

user@localhost:/var/cache/apt/archives$ sudo apt install postgresql-server-dev-14=14.4-1.pgdg18.04+1 libpq-dev=14.4-1.pgdg18.04+1 libpq5=14.4-1.pgdg18.04+1 -d
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  clang-6.0 lib32gcc1 lib32stdc++6 libc6-i386 libclang-common-6.0-dev libclang1-6.0 libffi-dev libffi6 libgc1c2 libjsoncpp1 libllvm6.0 libobjc-7-dev libobjc4 libomp-dev libomp5
  libssl-dev libssl1.1 libtinfo-dev llvm-6.0 llvm-6.0-dev llvm-6.0-runtime
Suggested packages:
  gnustep gnustep-devel clang-6.0-doc libomp-doc postgresql-doc-14 libssl-doc llvm-6.0-doc
The following NEW packages will be installed:
  clang-6.0 lib32gcc1 lib32stdc++6 libc6-i386 libclang-common-6.0-dev libclang1-6.0 libffi-dev libgc1c2 libjsoncpp1 libobjc-7-dev libobjc4 libomp-dev libomp5 libpq-dev libssl-dev
  libtinfo-dev llvm-6.0 llvm-6.0-dev llvm-6.0-runtime postgresql-server-dev-14
The following packages will be upgraded:
  libffi6 libllvm6.0 libssl1.1
The following packages will be DOWNGRADED:
  libpq5
3 upgraded, 20 newly installed, 1 downgraded, 0 to remove and 165 not upgraded.
Need to get 70.3 MB of archives.
After this operation, 321 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

标签: PostgreSQL

添加新评论