`
J2EE小熊
  • 浏览: 108961 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

liunx环境下源码安装PostgreSQL+PostGIS

阅读更多

 

1.软件准备

     操作系统版本

     CentOS5.5

     源代码包

     postgresql-9.0.2

     postgis-1.5.2

     proj-4.7.0

     geos-3.2.2

     libxml2-2.6.26

 

2.软件安装

       (1) PostgreSQL安装

        下载PostgreSQL源代码

1.软件准备

    操作系统版本

    CentOS5.5

    源代码包

    postgresql-9.0.2

    postgis-1.5.2

    proj-4.7.0

    geos-3.2.2

    libxml2-2.6.26

 

2.软件安装

       (1) PostgreSQL安装

        下载PostgreSQL源代码包

        # wget ftp://ftp2.cn.postgresql.org/postgresql/source/v9.0.2/postgresql-9.0.2.tar.bz2 <==下载PostgreSQL9.0.2源码包

        # tar -jxvf postgresql-9.0.2.tar.bz2 <==解压源码包

        # cd postgresql-9.0.2 <==进入到源码包文件夹

        #./configure --prefix=/usr/local/pgsql  <==配置软件的安装目录

        #gmake <==编译软代码

        All of PostgreSQL is successfully made. Ready to install. <==编译成功显示的信息

        /*******************************编译需要具备的条件*********************************************************

            gmake(make)版本最好是3.79.1 或者更高版本,CentOS5.5中make的版本号为

              # rpm -q  make  <==这个必须有

              make-3.81-3.el5

            readline库(默认),命令行编辑功能,这个库虽然不是必须的(可以在配置阶段通过 --without-readline选项来取消),但是强烈建议安装readline,

            使用psql时,可以使用方向键来选择和编辑前面键入的命令,CentOS5.5中readline版本为

              # rpm -qa | grep readline  <这个可以有,最好有

              readline-5.1-3.el5

              readline-devel-5.1-3.el5

            zlib库(默认),主要用于pg_dump和pg_restore两个操作的数据压缩功能,这个库也不是必须的(可以在配置阶段通过--without-zlib选项来取消),

              CentOS5.5中zlib安装情况

              # rpm -qa | grep zlib

              zlib-devel-1.2.3-3

              zlib-1.2.3-3

          在编译程序前必须要安装这些包,否则无法通过编译,此外,还有在配置阶段还有很多可选包,可以通过./configure --help查看,这里不多介绍。

      **********************************************************************************************************/

        #gmake install <==安装软件到指定的配置阶段prefix指定的目录下

        #adduser postgres  <==添加postgres用户,postgreSQL的默认超级管理员

        #mkdir /usr/local/pgsql/data  <==创建存放数据的目录

        #chown postgres /usr/local/pgsql/data  <==改变文件拥有者

        #su - postgres <==切换到postgres用户

        #/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data  <==初始化磁盘上的数据库的存储区间

        #/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 & 

                      <==指定数据目录启动数据库服务器(输出重定向到logfile,并且运行在后台,也可以用pg_ctl来启动)

        #/usr/local/pgsql/bin/createdb test <== 创建测试数据库,确认安装顺利完成

        #/usr/local/pgsql/bin/psql test  <== 连接进数据库,可以SQL了

        安装完成后,最好配置一下动态连接库的搜索路径和环境变量,即在~./bash_profile添加如下内容:

             LD_LIBRARY_PATH=/usr/local/pgsql/lib <==动态连接库的所在目录

             export LD_LIBRARY_PATH 

             PATH=/usr/local/pgsql/bin:$PATH <==为了方便使用,添加命令的搜索路径

             export PATH

    自此,PostgreSQL9.0.2安装完成。

 

 

    (2) postgis的安装

             首先下载源码包postgis-1.5.2,proj-4.7.0,geos-3.2.2,libxml2-2.6.26,虽然这三个库不是安装postgis强制的,但是,没有这三个包,

 

       postgis一定程度上失去了空间数据库的意义。因为Proj4提供了投影的相关操作,如postgis中的transform()函数,geos则为postgis提供了很多拓扑

 

       检查功能的函数,如Touches(), Contains(), Disjoint() 还有一些空间操作函数,如Intersection(), union  () 以及 Buffer()等 ,而Libxml2则提

       供了对GML和KML的操作函数,如ST_GeomFromGML(), ST_GeomFromKML()等,如果丧失了这样特性,空间数据库将会怎样!

 

       废话少说,下面开始安装

    /***************安装proj**************************************/

    # ./configure --prefix=/usr/local/proj  <==配置proj,指定安装路径,其他默认

    # make <==编译

    # make install  <==安装proj 

    /***************安装geos**************************************/

    # ./configure --prefix=/usr/local/geos  <==配置GEOS,指定安装路径,其他默认

    # make <==编译

    # make install  <==安装geos

    将/usr/local/geos/lib添加到/etc/ld.so.conf中,然后运行/sbin/ldconfig,这样做的目的是/etc/ld.so.conf列出

    的路径下的库文件缓存到/etc/ld.so.cache 以供使用,否则下面的编译可以会出现找不到xxx库的错误。

    libxml2库,CentOS5.5已经安装,如果没有请自行安装,CentOS5.5中libxml2具体情况如下

        # rpm -q libxml2

        libxml2-2.6.26-2.1.2.8.el5_5.1

    /*********前提条件具备了,下面开始安装PostGIS,软件是在postgres用户下安装的,所以下面命令提示符为$**********/

    $ ./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-projdir=/usr/local/proj --with-geosconfig=/usr/local/geos/bin/geos_config

            <==配置信息比较多,

            <== --with-pgconfig是指定PostgreSQL的配置文件

            <== --with-projdir指定proj的安装目录

            <== --with-geosconfig则是指定geos库的配置文件,

            <==另外还有--with-xml2config选项,如果libxml2是默认安装的则省略这个选项,否则还需要指定这个选项到libxml2的配置文件

            <==熟悉windows环境下的postgis就会指定,将shape文件导入到数据库中还有个图形界面shp2pgsql-gui,这个可以用--with-gui指定

    $ make <==编译

    $ make install <==安装postgis

    其实安装都是这几个步骤,熟悉linux的朋友只要./configure阶段注意一些配置信息既可顺利安装。

 

 

 

3 测试安装是否正确-----创建空间数据库。

           熟悉windows环境下postgis的朋友,都会注意到,安装了postgis后,pgsql中多了一个数据库template_postgis,这是个空间数据库的模

     板,其实就是个空间数据库。而在linux环境下通过源码安装的postgis,默认没有创建这个空间数据库,下面我就用创建者个模板空间数据库来验证

 

     上面的安装是否正确。一旦创建了一个空间数据库模板,以后每次创建空间数据库只要在这个模板空间数据库上创建就可以了,省时省力!

     /*****************如果不熟悉pgsql相关命令的可以参考本博客的《创建PostGIS空间数据库》******************************/

    # su - postgres <==切换到postgres用户下

    $ createdb template_postgis <==创建数据库,此时,该数据库还没有具备空间特性

    $ psql -f /usr/local/pgsql/share/contrib/postgis-1.5/postgis.sql -d template_postgis

            <==执行postgis.sql脚本,创建相关空间数据库相关的函数,类型,操作符等

            <==执行完这个脚本,该数据库就具有了空间特性了

    $createdb [-U username] -T template_postgis my_spatial_db

            <==下次再创建数据库,只要以这个模板就可以了,不必每次都执行这个脚本,-U指定用户名,默认就是postgres

    $psql my_spatial_db <==连接到创建的空间数据库

    my_spatial_db=# select postgis_full_version();     <== 查询postgis的版本信息,包含用到的三个库信息

                                          postgis_full_version                                          

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    POSTGRESQL+POSTGIS+GDAL编译

    POSTGRESQL+POSTGIS+GDAL编译指南 ...编译POSTGRESQL+POSTGIS+GDAL需要准备相应的源码包,并安装对应的依赖项,最后按照正确的顺序进行编译和安装,以便在Linux平台上成功安装POSTGRESQL+POSTGIS+GDAL。

    linux离线安装postgresql与sde与postgis.zip

    在Linux环境中离线安装PostgreSQL、SDE(ArcGIS的Spatial Database Engine)和PostGIS是一项常见但有时复杂的任务,尤其当服务器处于内网环境时,无法直接访问互联网资源。本指南将详细介绍如何在Linux系统中进行...

    postgresql14加postgis3.2在centos离线编译安装

    在Linux环境中,特别是CentOS操作系统上,离线安装软件包是一项常见的需求,特别是在没有网络连接或者网络环境受限的服务器上。本教程将详细介绍如何在CentOS系统上离线编译安装PostgreSQL 14和PostGIS 3.2,这两个...

    PostGreSQL安装部署系列:Centos 7.9 安装指定PostGreSQL-15版本数据库

    由于在实际生产环境中,PostgreSQL通常运行于Linux操作系统之上,因此本文不会涉及Windows平台下的安装步骤。 #### 二、前期准备 ##### 2.1 配置YUM源 为了确保能够顺利地安装PostgreSQL及其依赖组件,首先需要为...

    详解Linux中PostgreSQL和PostGIS的安装和使用

    在Linux环境中,PostgreSQL是一种强大的开源关系型数据库管理系统,而PostGIS则是其扩展,提供了空间数据存储和地理处理功能。本文将详细介绍如何在Linux上安装和使用这两个组件,以及一些关键注意事项。 首先,...

    Linux下安装Postgis数据库

    在Linux环境下安装PostGIS数据库是一项常见的任务,尤其对于那些需要处理地理空间数据的开发者和管理员而言。PostGIS是PostgreSQL数据库管理系统的一个扩展,它提供了强大的地理空间数据存储和查询功能。下面将详细...

    postgis 安装文件 linux

    在Linux环境中安装PostGIS,是为你的服务器或开发环境提供地理信息系统(GIS)功能的关键步骤。以下将详细介绍在Linux上安装PostGIS 2.3.0的过程,以及涉及到的相关知识点。 1. **安装前准备** 在开始安装前,确保...

    postgis-3.0.3.tar.gz

    这个`.tar.gz`文件是源代码压缩包,通常在Linux环境下使用,用于编译安装PostGIS 3.0.3到本地系统。 **PostGIS的核心功能:** 1. **空间数据类型**:PostGIS引入了如`GEOMETRY`、`GEOGRAPHY`等空间数据类型,允许...

    postgis+postgresql

    在实际应用中,PostGIS+PostgreSQL常用于地图服务、地理编码、土地资源管理、城市规划、环境监测、交通管理和灾害预警等领域。由于其开放源码的性质,用户可以根据自己的需求定制功能,同时避免了高昂的商业软件授权...

    arm架构下的postgresql库文件

    标题提及的“arm架构下的postgresql库文件”是指在基于ARM处理器的系统上,用于PostgreSQL数据库服务的库文件。这些库文件是PostgreSQL在ARM平台上的核心组成部分,它们包含了执行SQL查询、管理数据、处理并发操作等...

    postgis1.3.2.tar

    在Linux环境下安装PostGIS的步骤如下: 1. **安装 PostgreSQL**:首先,你需要安装 PostgreSQL 数据库。这通常可以通过包管理器完成,如在 Ubuntu 或 Debian 上使用 `apt-get`,或者在 CentOS 或 RHEL 上使用 `yum`...

    PostGIS系列教程

    1. **Windows环境下安装**: - 在PostgreSQL安装程序中选择安装PostGIS组件。 - 安装过程较为简单直观。 2. **Debian环境下安装**: - 使用`apt-get`命令安装PostgreSQL和PostGIS。 - 配置步骤: - 创建专用的...

    postgressql和postgis安装

    ### PostgreSQL与PostGIS安装知识点详解 #### 一、PostgreSQL简介 PostgreSQL是一种先进的对象-关系型数据库管理系统(ORDBMS)。它具有丰富的特性和强大的功能,在自由软件数据库系统中处于领先地位。 - **特点...

    PostGIS.pdf

    - **Windows下的安装**:新版本的PostgreSQL安装程序已经集成了PostGIS组件,用户只需在安装向导中选择“PostGIS”和“pgsql”选项即可完成安装。 - **Debian下的安装**: - 使用`apt-get`命令安装PostgreSQL和...

    QGIS最新源码#C++#QT#Liunx

    在Linux环境下编译QGIS源码,需要预先安装一系列依赖库。这些依赖通常包括: 1. GDAL(Geospatial Data Abstraction Library):处理各种地理数据格式的基础库。 2. PROJ:进行地理坐标转换的工具。 3. PostgreSQL/...

    postgis-0.9.2.tar.gz

    2. **编译环境**:因为是源码包,所以你需要知道如何在 Linux 或 Unix 系统上编译和安装开源软件。 3. **SQL**:理解 SQL 查询语言,以便于创建和操作带有地理信息的表。 4. **GIS 基础**:对地理信息系统的基本...

    QGIS源码官方编译指南

    - **Cygwin**:提供Unix-like环境下的工具,如bison、flex和git等。 - **OSGeo4W**:提供一系列用于地理信息系统开发的工具和库,包括expat、fcgi、gdal等。 3. **编译步骤**: - 使用CMake生成Visual Studio的...

    postgresql-14.2

    - PostgreSQL 的安装通常涉及下载源码包(如 "postgresql-14.2"),解压后编译和安装。在Linux系统中,这通常包括配置、编译、安装和初始化数据库集群等步骤。 - 配置文件 `postgresql.conf` 可以定制服务器的性能...

    geoserver通过rest自动发布postigs图层

    2. **PostGIS**:PostGIS是PostgreSQL数据库的一个扩展,它提供了强大的空间数据处理能力,允许用户存储、查询和分析地理信息。PostGIS支持复杂的空间函数和操作,是GIS领域常用的空间数据库系统。 3. **REST API**...

    QT连接PSQL数据库打包程序

    此外,你还需要确保目标机器上安装了PostgreSQL客户端库,以便程序能够正确连接到数据库。 在压缩包文件中,"demo"可能是源代码的项目文件或者编译后的可执行文件。如果你得到的是源码,可以使用QT Creator打开并...

Global site tag (gtag.js) - Google Analytics