Mac和Linux安装PostGIS教程

1,265 阅读4分钟

image.png

简介

PostGIS是一个强大的空间数据库扩展,为PostgreSQL数据库添加了地理信息系统(GIS)功能。本教程将指导你在Mac和Linux系统上安装PostGIS。

目录

  1. Mac安装PostGIS

  2. Linux安装PostGIS

Mac安装PostGIS

使用Homebrew安装

  1. 首先,确保你已安装Homebrew。如果没有,请运行以下命令:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. 安装PostgreSQL(如果尚未安装):

    brew install postgresql@16
    
  3. 安装PostGIS:

    brew install postgis@3.4
    
  4. 启动PostgreSQL服务:

    brew services start postgresql
    
  5. 创建一个新的数据库并启用PostGIS扩展:

    createdb mydb
    psql mydb
    CREATE EXTENSION postgis;
    

使用Postgres.app安装

  1. 访问 Postgres.app官网 下载并安装Postgres.app。

  2. 安装完成后,启动Postgres.app。

  3. PostGIS已经包含在Postgres.app中,无需额外安装。

  4. 打开终端,连接到数据库并启用PostGIS扩展:

    psql
    CREATE EXTENSION postgis;
    

😭虽然官方说已经包含了,但是我还是报错了

image-20240726151437109.png

ERROR:  Could not open extension control file "/Library/PostgreSQL/16/share/postgresql/extension/postgis.control": No such file or directory.extension "postgis" is not available 
​
ERROR:  extension "postgis" is not available
SQL state: 0A000
Detail: Could not open extension control file "/Library/PostgreSQL/16/share/postgresql/extension/postgis.control": No such file or directory.
Hint: The extension must first be installed on the system where PostgreSQL is running.
​
​

错误分析

  1. 这个错误表明 PostgreSQL 无法找到 PostGIS 扩展的控制文件。
  2. 错误消息指向 PostgreSQL 16 的安装路径,这表明你可能使用的是 EnterpriseDB 提供的 PostgreSQL 安装包,而不是 Postgres.app。
  3. PostGIS 扩展似乎没有正确安装在你的系统上。

可能的原因

  1. PostGIS 未安装。
  2. PostGIS 安装路径与 PostgreSQL 期望的路径不匹配。
  3. PostgreSQL 和 PostGIS 版本不兼容。

解决方案

  1. 确认 PostGIS 安装:

    sudo find /Library/PostgreSQL -name postgis.control
    

    如果没有找到文件,则需要安装 PostGIS。

    但是后来我发现是我的问题

    注意

    在安装过程中,建议勾选 Stack Builder 选项,这会帮助你后续安装 PostGIS。

    安装 PostGIS: 安装完成后,打开 Stack Builder,选择你安装的 PostgreSQL 版本,然后选择 Spatial Extensions 下的 PostGIS,点击 Next 进行安装。🙂🙂🙂

image-20240801101943684.png

image-20240801102011577.png

image-20240801102031914.png

image-20240801102047995.png

注意上面的路径上面步骤操作结束后postgis的安装包会在这个目录下你需要找到安装包点击安装

image-20240801103910621.png 安装后

image-20240801104141269.png 可以看到已经安装成功了。

image-20240801105212738.png

Linux安装PostGIS

Ubuntu/Debian

  1. 更新包列表:

    sudo apt update
    
  2. 安装PostgreSQL和PostGIS:

    sudo apt install postgresql postgresql-contrib postgis
    
  3. 创建一个新的数据库并启用PostGIS扩展:

    sudo -u postgres createdb mydb
    sudo -u postgres psql mydb
    CREATE EXTENSION postgis;
    

CentOS/RHEL

  1. 安装EPEL仓库(如果尚未安装):

    sudo yum install epel-release
    
  2. 安装PostgreSQL仓库:

    sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    
  3. 安装PostgreSQL和PostGIS:

    sudo yum install postgresql12-server postgresql12-contrib postgis30_12
    
  4. 初始化数据库:

    sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
    
  5. 启动并启用PostgreSQL服务:

    sudo systemctl start postgresql-12
    sudo systemctl enable postgresql-12
    
  6. 创建一个新的数据库并启用PostGIS扩展:

    sudo -u postgres createdb mydb
    sudo -u postgres psql mydb
    CREATE EXTENSION postgis;
    

从源代码编译安装

如果你需要特定版本或自定义安装,可以从源代码编译PostGIS:

  1. 安装必要的依赖:

    sudo apt install build-essential postgresql-server-dev-all libgeos-dev libproj-dev libxml2-dev libgdal-dev
    
  2. 下载PostGIS源代码:

    wget https://download.osgeo.org/postgis/source/postgis-3.1.4.tar.gz
    tar xvzf postgis-3.1.4.tar.gz
    cd postgis-3.1.4
    
  3. 配置、编译和安装:

    ./configure
    make
    sudo make install
    
  4. 在数据库中启用PostGIS扩展:

    psql mydb
    CREATE EXTENSION postgis;
    

结论

现在你已经成功在Mac或Linux系统上安装了PostGIS。可以开始使用PostGIS的强大功能来处理地理空间数据了😄😄(关于gis部分后面持续更新)。 💡Tips:在生产环境中使用PostGIS时,务必关注安全性配置和性能优化。