liunx环境下源码装置PostgreSQL+PostGISAG环亚娱乐 - AG环亚娱乐

liunx环境下源码装置PostgreSQL+PostGISAG环亚娱乐

2019年02月16日08时54分11秒 | 作者: 怀曼 | 标签: 装置,数据库,源码 | 浏览: 13731

        下载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                                          

 

 

 

 

 

 

 

 

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章