2011年6月9日 星期四

[Linux] 安裝 PostgreSQL、PostGIS 和 pgRouting @ Ubuntu 10.04

上一次用 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


沒有留言:

張貼留言