yzqzs 发表于 2016-11-19 10:35:54

开始熟悉环境并且编译postgresql

  2.1开始
  你要编译后的二进制代码放在 C:\PostgreSQL\8.0.0 这个目录中,仅此我是这么放的!
然后进入我们安装的MinGW的目录中,点击C:\msys\1.0\mys.bat 其实执行的是C:\msys\1.0\bin,当然这个我们不用去管它,我们编译自己的东西吧!
C:\msys\1.0\home\XXX [我的是Administrator]下面

执行下列命令:
  cd ~

mkdir sources

mkdir sources/PostgreSQL

mkdir sources/PostGIS

mkdir sources/Geos

mkdir sources/Proj

mkdir /c/PostgreSQL
  然后进入 c:\msys\1.0\home\XXX\sources
  2.2下载 PostgreSQL 源代码 (8.0.0 version) 或者更高的版本
这里是8.0.0的下载地址 ftp://ftp2.fr.postgresql.org/pub/unix/postgresql/source/v8.0.0/postgresql-8.0.0.tar.gz
  将你下载的代码放在 c:\msys\1.0\home\XXX\sources\PostgreSQL 这里。
  进入msys然后执行:
  cd ~/sources/PostgreSQL
  tar xvzf postgresql-8.0.0.tar.gz
  cd postgresql-8.0.0
  configure --prefix=/c/PostgreSQL/8.0.0
  make
  make install
  
2.3.Geos and Proj
  
下载下面的软件 Geos and Proj
  http://geos.refractions.net/geos-2.1.1.tar.bz2
  ftp://ftp.remotesensing.org/proj/proj-4.4.9.tar.gz
  把geos-2.1.1.tar.bz2和Proj-4.4.9.tar.gz 放在 c:\msys\1.0\home\XXX\sources\Geos 和c:\msys\1.0\home\XXX\sources\Proj
  2.3.2. 编译
  cd ~/sources/Geos
  tar xvjf geos-2.1.1.tar.bz2
  cd geos-2.1.1
  configure --prefix=/c/PostgreSQL/8.0.0 && make && make install
  cd ~/sources/Proj
  tar xvzf proj-4.4.9.tar.gz
  cd proj-4.4.9
  configure --prefix=/c/PostgreSQL/8.0.0 && make && make install
  还有可能需要ln这个命令进行映射,自己研究吧,详细的看编译的过程!


2.3.3.DLL creation






  你必须建立两个(dll) 名字为: libproj.dll and libgeos.dll 在c:\PostgreSQL\8.0.0\lib 目录下cd /c/PostgreSQL/8.0.0/lib

g++ -shared -o libgeos.dll -Wl,--out-implib=libgeos.dll.a -Wl,--export-all-symbols -Wl,\
--enable-auto-import -Wl,--whole-archive libgeos.a -Wl,--no-whole-archive /c/mingw/lib/libmingw32.a

cd c/PostgreSQL/8.0.0/lib

gcc -shared -o libproj.dll -Wl,--out-implib=libproj.dll.a -Wl,--export-all-symbols -Wl,\
--enable-auto-import -Wl,--whole-archive libproj.a -Wl,--no-whole-archive /c/mingw/lib/libmingw32.a


2.4.PostGIS






  开始安装PostGIS


2.4.1.Downloadingt






  PostGIS (version 1.0.0)下载地址:
  http://postgis.refractions.net/postgis-1.0.0.tar.gz
  将它移动到 c:\msys\1.0\home\XXX\sources\PostGIS 目录中去
  2.4.2.Compilation and Installation




  进入msys然后执行下面的命令
  cd ~/sources/PostGIS

tar xvzf postgis-1.0.0.tar.gz  Form MinGW, do the followings
cd ~/sources/PostGIS/postgis-1.0.0
configure --enable-autoconf --with-geos=/c/PostgreSQL/8.0.0/bin/geos-config \
--with-proj=/c/PostgreSQL/8.0.0 \
--with-pgsql-src=/home/$USERNAME/sources/PostgreSQL/postgresql-8.0.0 --prefix=/c/PostgreSQL/8.0.0
  Form MinGW, do the followings
cd ~/sources/PostGIS/postgis-1.0.0
configure --enable-autoconf --with-geos=/c/PostgreSQL/8.0.0/bin/geos-config \
--with-proj=/c/PostgreSQL/8.0.0 \
--with-pgsql-src=/home/$USERNAME/sources/PostgreSQL/postgresql-8.0.0 --prefix=/c/PostgreSQL/8.0.0  Form MinGW, do the followings
cd ~/sources/PostGIS/postgis-1.0.0
configure --enable-autoconf --with-geos=/c/PostgreSQL/8.0.0/bin/geos-config \
--with-proj=/c/PostgreSQL/8.0.0 \
--with-pgsql-src=/home/$USERNAME/sources/PostgreSQL/postgresql-8.0.0 --prefix=/c/PostgreSQL/8.0.0  $USERNAME - 就是你登陆的用户
  继续执行下列命令:

  cd ~/sources/PostGIS/postgis-1.0.0

make && make install
  2.5.Commands summary







  下面是利用脚本文件下载安装全过程,当然是建立在环境搭建好的基础上,不建议用这种安装,万一哪个地方弄错了,岂不是前功尽弃了!


2.5.1.下载 wget 工具







  下面是它饿下载路径http://gnuwin32.sourceforge.net/packages.html 'SetUp' 路径. 将它安装在c:\MinGW目录下


2.5.2.General script






  复制下面的脚本的内容放在这文件里install_all.sh script.将它移动到c:\msys\1.0\home\XXX 然后从MinGW执行这个脚本
  下面是脚本代码:

export PGSQL_DIST=/c/PostgreSQL/8.0.0
cd ~
mkdir sources
mkdir sources/Geos
mkdir sources/Proj
mkdir sources/PostGIS
mkdir sources/PostgreSQL
mkdir $PGSQL_DIST/..
#
# PostgreSQL
#
cd ~/sources/PostgreSQL
wgetftp://ftp2.fr.postgresql.org/pub/unix/postgresql/source/v8.0.0/postgresql-8.0.0.tar.gz
tar xvzf postgresql-8.0.0.tar.gz
cd postgresql-8.0.0
configure --prefix=$PGSQL_DIST --enable-multibyte --with-CXX
make
make install
#
# Geos and Proj
#
cd ~/sources/Geos
wget http://geos.refractions.net/geos-2.1.1.tar.bz2
tar xvjf geos-2.1.1.tar.bz2
cd geos-2.1.1
configure --prefix=$PGSQL_DIST && make && make install
cd ~/sources/Proj
wget ftp://ftp.remotesensing.org/proj/proj-4.4.9.tar.gz
tar xvzf proj-4.4.9.tar.gz
cd proj-4.4.9
configure --prefix=$PGSQL_DIST && make && make install
#
# DLL creation
#
cd $PGSQL_DIST/lib
g++ -shared -o libgeos.dll -Wl,--out-implib=libgeos.dll.a -Wl,--export-all-symbols -Wl,\
--enable-auto-import -Wl,--whole-archive libgeos.a -Wl,--no-whole-archive /c/mingw/lib/libmingw32.a
cd $PGSQL_DIST/lib
gcc -shared -o libproj.dll -Wl,--out-implib=libproj.dll.a -Wl,--export-all-symbols -Wl,\
--enable-auto-import -Wl,--whole-archive libproj.a -Wl,--no-whole-archive /c/mingw/lib/libmingw32.a
#
# PostGIS
#
cd ~/sources/PostGIS
wgethttp://postgis.refractions.net/postgis-1.0.0.tar.gz
tar xvzf postgis-1.0.0.tar.gz
cd postgis-1.0.0
configure --enable-autoconf --with-geos=$PGSQL_DIST/bin/geos-config --with-proj=$PGSQL_DIST \
--with-pgsql-src=/home/$USERNAME/sources/PostgreSQL/postgresql-8.0.0 --prefix=$PGSQL_DIST
make && make install

                         postgresql编译结束
页: [1]
查看完整版本: 开始熟悉环境并且编译postgresql