环境:
1、已经安装的postgresql版本为9.6,具体查询如下:
sudo -u postgres psql
psql (9.6.24)
Type "help" for help.
postgres=# SELECT version();
version
-------------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 9.6.24 on x86_64-pc-linux-gnu (Ubuntu 9.6.24-4.pgdg18.04+1), compiled by gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit
(1 row)
postgres=#
2、操作系统版本为ubuntu20.4,具体查询如下:
cat /proc/version
Linux version 5.15.0-67-generic (buildd@lcy02-amd64-029) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #74~20.04.1-Ubuntu SMP Wed Feb 22 14:52:34 UTC 2023
安装问题
问题1:目录/var/cache/apt/archives,总是自动下载deb包
解决:禁用ubuntu自动更新机制
sudo systemctl disable unattended-upgrades
sudo systemctl stop unattended-upgrades
问题2:各种依赖报错:but it is not going to be installed,but it is not installable。
分析:折腾了很多,不知道哪个步骤生效,最终成功安装了,做个记录,供参考。
解决步骤1:添加 universe
仓库
sudo add-apt-repository universe
sudo apt update
解决步骤2:修改pgdg.list
参考网站:在 ubuntu 20.04 LTS 上无法安装 postgis - Linux答疑百科
sudo rm /etc/apt/sources.list.d/pgdg.list
echo "deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
解决步骤3:修改etc/apt/sources.list,将源码镜像注释放开
参考网站:ubuntu20.04上安装postgresql12+postgis3_ubuntu20.04安装postgresql12+postgis-CSDN博客
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
解决步骤4:重启系统
离线安装
【安装问题】都解决后,执行以下步骤,进行离线安装
1、查看可安装的版本
sudo apt-cache search postgis
postgresql-9.5-pgrouting - Routing functionality support for PostgreSQL/PostGIS
postgresql-9.5-pgrouting-doc - Routing functionality support for PostgreSQL/PostGIS (Documentation)
postgresql-9.5-pgrouting-scripts - Routing functionality support for PostgreSQL/PostGIS - SQL scripts
postgresql-9.5-postgis-2.5 - Geographic objects support for PostgreSQL 9.5
postgresql-9.5-postgis-2.5-dbgsym - debug symbols for postgresql-9.5-postgis-2.5
postgresql-9.5-postgis-2.5-scripts - Geographic objects support for PostgreSQL 9.5 -- SQL scripts
postgresql-9.5-postgis-3 - Geographic objects support for PostgreSQL 9.5
postgresql-9.5-postgis-3-dbgsym - debug symbols for postgresql-9.5-postgis-3
postgresql-9.5-postgis-3-scripts - Geographic objects support for PostgreSQL 9.5 -- SQL scripts
postgresql-9.6-pgrouting - Routing functionality support for PostgreSQL/PostGIS
postgresql-9.6-pgrouting-doc - Routing functionality support for PostgreSQL/PostGIS (Documentation)
postgresql-9.6-pgrouting-scripts - Routing functionality support for PostgreSQL/PostGIS - SQL scripts
postgresql-9.6-postgis-2.5 - Geographic objects support for PostgreSQL 9.6
postgresql-9.6-postgis-2.5-dbgsym - debug symbols for postgresql-9.6-postgis-2.5
postgresql-9.6-postgis-2.5-scripts - Geographic objects support for PostgreSQL 9.6 -- SQL scripts
postgresql-9.6-postgis-3 - Geographic objects support for PostgreSQL 9.6
postgresql-9.6-postgis-3-dbgsym - debug symbols for postgresql-9.6-postgis-3
postgresql-9.6-postgis-3-scripts - Geographic objects support for PostgreSQL 9.6 -- SQL scripts
postgresql-postgis - Geographic objects support for PostgreSQL -- Metapackage
postgresql-postgis-scripts - Geographic objects support for PostgreSQL -- SQL scripts metapackage
postgresql-9.6-postgis-2.4-scripts - Geographic objects support for PostgreSQL 9.6 -- SQL scripts
gsafety@ubuntu:/usr/local/data/postgisdata$ sudo apt install postgis postgresql-9.6-postgis-2.5
2、下载离线安装包,选择的是postgresql-9.6-postgis-2.5版本
sudo apt clean
sudo apt install -d postgis postgresql-9.6-postgis-2.5
离线安装包默认下载路径:/var/cache/apt/archives/
3、复制离线安装包到内网机器
3.1、安装离线包
sudo dpkg -i *.deb
3.2、如果因为依赖顺序等原因安装报错,可执行以下命令修复
sudo apt-get install -f
3.3、注意观查安装报错,如果是依赖版本不对,需要下载指定版本重新安装,如:
sudo apt-get download bcc-10-base=10.5.0
4、验证安装
参考:https://www.cnblogs.com/echohye/p/18005059
注意,如果新建数据库,需要在当前数据库下再次执行 CREATE EXTENSION,会自动将函数和类型安装到当前数据库的public模式下。
sudo -u postgres psql
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
select postgis_full_version();
postgis_full_version
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
POSTGIS="2.5.5" [EXTENSION] PGSQL="96" GEOS="3.8.0-CAPI-1.13.1 " PROJ="Rel. 6.3.1, February 10th, 2020" GDAL="GDAL 3.0.4, released 2020/01/28" LIBXML="2.9.10" LIBJSON="0.13.1" LIBPROTOBUF="1.3.3" RASTER