上一次用 PostgreSQL 已經是一年多前了,那時是研究 HadoopDB 啦。

最近要使用 PostgreSQL 都忘光光了,就順便再筆記一次,這次用到一些跟圖資相關的 plugin,搞得有點久,果然隔行如隔山啊。

參考資料:

Installing PostgreSQL 8.4, PostGIS 1.4.1, and pgRouting 1.0.3 on Ubuntu 9.10 (Karmic Koala)

Installation - Open Source Routing Library

安裝環境:

Ubuntu 10.04 server 64-bit

流程:

安裝相關環境,雖然只是一道指令,但裝了非常多東西,下載都要一陣子

$ sudo apt-get install postgresql postgresql-server-dev-8.4 postgis proj libgeos-dev libboost-graph-dev libcgal-dev cmake build-essential postgresql-8.4-postgis

安裝 The Genetic Algorithm Utility Library (GAUL)

下載 gaul-devel-0.1849-0.tar.gz

$ tar -xvf gaul-devel-0.1849-0.tar.gz
$ cd gaul-devel-0.1849-0
$ ./configure --disable-slang
$ sudo make install

安裝 pgRouting

$ wget http://download.osgeo.org/pgrouting/source/pgrouting-1.05.tar.gz
$ tar -xvf pgrouting-1.05.tar.gz
$ cd pgrouting-1.05
$ cmake -DWITH_TSP=ON -DWITH_DD=ON .
$ sudo make install

設定相關環境(非必要):

解決 ERROR:  could not load library "/usr/lib/postgresql/8.4/lib/librouting_tsp.so": libgaul.so.0: cannot open shared object file: No such file or directory 問題

$ sudo vim /etc/ld.so.conf.d/libgaul.conf
/usr/local/lib/
$ sudo ldconfig

調整 psql 使用權限,讓 192.168.x.x 連進來的可以不作權限確認

$ sudo vim /etc/postgresql/8.4/main/pg_hba.conf

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
#host    all         all         127.0.0.1/32          password  
host    all         all         192.168.0.0/16        trust

使用範例:

$ createdb -U postgres -E UNICODE template_postgis
$ createlang -U postgres -d template_postgis plpgsql
$ psql -U postgres template_postgis < /usr/share/postgresql/8.4/contrib/postgis.sql
$ psql -U postgres template_postgis < /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql
$ psql -U postgres -c "SELECT postgis_lib_version();" template_postgis
 postgis_lib_version 
---------------------
 1.4.0
(1 row)
 
$ createdb -U postgres -E UNICODE -T template_postgis mydb
$ psql -U postgres mydb < /usr/share/postlbs/routing_core.sql 
$ psql -U postgres mydb < /usr/share/postlbs/routing_core_wrappers.sql 
$ psql -U postgres mydb < /usr/share/postlbs/routing_topology.sql 
$ psql -U postgres mydb < /usr/share/postlbs/routing_tsp.sql 
$ psql -U postgres mydb < /usr/share/postlbs/routing_tsp_wrappers.sql


, , ,

changyy 發表在 痞客邦 PIXNET 留言(0) 人氣()