Tuesday, December 12, 2017

Menginstall postgis 1.5 pada Ubuntu Server

Postgis
Postingan ini kayaknya kurang kerjaan banget ya? Karena sampai tulisan ini ditulis postgis sudah sampe versi 2.4, bisa di cek disini. Tapi mau gimana lagi, di kantor ada service yang masih pake postgresql versi 8.4.20 dan postgis versi 1.5, yang mana databasenya harus di migrasi ke database utama perusahaan yang pake postgres versi 9.6 dan postgis versi 2.3.


Al hasil kudu ngekek karena beberapa fitur di postgres 9 beberapa ada yang belum tersedia di postgres 8.

Misalnya seperti keperluan list extension yang tersedia pada system dengan meng-query perintah  : select * from pg_available_extensions;  hingga shortcut command /dx (list extension yang terinstall pada database) yang pada postgres 9 namun belum tersedia di versi 8.

Postgres 8.4
Postgres 9.6
Karena dokumentasi kebetulan belum ada, dan saya kira beberapa error dalam proses compile cenderung identik, maka saya coba dokumentasikan proses kompilasi disini. Sapa tau nanti ketemu lagi dengan error yang sama ada, atau pembaca ada yang menghadapi error yang sama. Referensi install saya ambil dari mari.

Disini saya pakai image docker yang kebetulan menggunakan Debian Jessie 8.9. Untuk distro lain bisa menyesuaikan nama package yang tersedia di repo. Berdasarkan thread pada forum tersebut,  postgis 1.5 masih kompatible dengan postgresql 9.2, karena itu, untuk migrasi dari postgres versi 8 ke 9, saya mencoba untuk memigrasikan dari 8.4 ke versi 9.2 seperti yang disebutkan di dalam forum.

Oke, untuk mengcompile postgis 1.5, package yang perlu di siapkan adalah basic compiler dan beberapa package yang tertera pada forum teresbut dan tambahan sebagai berikut :
  • postgresql-server-dev-8.4
  • wget
  • libgeos-dev 
  • imagemagick (untuk compile dokumentasi)
Package lain yang perlu kita install jika kita akan menginstall Documentation / Comment (saya rekomendasikan di install juga) adalah sebagai berikut :
  • xsltproc 
  • docbook-xsl 
  • imagemagick
Yang bisa kita install dengan perintah berikut (pastikan menggunakan privileges root) :

apt-get update 
Kemudian
apt-get install -y build-essential libgeos-c1 libgeos-dev libproj-dev libjson-c-dev libxml2-dev libxml2-utils xsltproc docbook-xsl docbook-mathml postgresql-server-dev-8.4 wget
Setelah itu eksekusi perintah yang ada pada tutorial:
cd
wget http://download.osgeo.org/postgis/source/postgis-1.5.8.tar.gz
tar xfvz postgis-1.5.8.tar.gz 
cd postgis-1.5.8 
./configure 
Jika proses configure berhasil, maka output yang dihasilkan adalah sebagai berikut :
Proses configure berhasil

Selanjutnya kita selesaikan proses instalasi dengan perintah berikut :
make 
Siap di install
sudo make install
sudo ldconfig   
Selanjutnya install Documentation / Comment pada postgis.
Masuk kedalam root source code postgis dengan perintah
cd postgis-1.5.8 
Kemudian ikuti perintah-perintah berikut :
cd doc 
make
make install
make comments-install
Setelah proses install Documentation / Comment selesai, berikut adalah cara mengintegrasikan postgis extension ke database (sumber) :

NAMA_DB=mydb
su postgres -c createdb $NAMA_DB
su postgres -c "createlang plpgsql $NAMA_DB"
su postgres -c "psql -d $NAMA_DB -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql"
psql -d $NAMA_DB -f /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql
psql -d $NAMA_DB -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis_comments.sql 
Jika hendak melakukan migrasi atau mereplikasi database dari satu server ke server lain, anda cukup menginstall Postgis Documentation / Comments dan ekstensi yang terinstall dari server sumber. Tidak perlu membuat dan mengintegrasikan postgis ke database. Cukup mengeksekusi perintah berikut :

$HOST_SUMBER=172.17.0.5
$HOST_TARGET=localhost
pg_dumpall -h $HOST_SUMBER -p 5432 -U postgres | psql -h $HOST_TARGET -U postgres -d postgres -p 5432

Notes :
Berikut adalah beberapa error message yang mungkin akan muncul saat proses kompilasi dan solusi yang saya temukan :
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
atau

configure: error: could not find libpq-fe.h
Solusi install : postgresql-server-dev-8.4


configure: error: could not find geos-config within the current path. You may need to try re-running configure with a --with-geosconfig parameter.
Solusi install : libgeos-dev

configure: error: could not find xml2-config from libxml2 within the current path. You may need to try re-running configure with a --with-xml2config parameter.

No comments:

Post a Comment