Install PostgreSQL di Slackware tidak semudah di ubuntu
Sebelumnya saya dah pernah mencoba install PostgreSQL di ubuntu, dengan fasilitas apt-get install saya dengan mudah menginstall PostgreSQL dengan perintah
$ sudo apt-get install postgresql-8.3 postgresql-doc-8.3 postgresql-contrib-8.3 build-essential postgresql-server-dev-8.3 pgadmin3
maka secara otomatis PostgreSQL akan terinstall, berbeda dengan cara install PostgreSQL di slackware semalaman saya coba install, sambil ngantuk, mikir, update status facebook, maen gitar, dengerin music. Yang pasti kalau Anda belum familiar dengan slackware mungkin akan sedikit merepotkan.
Langkah awal untuk install PostgreSQL di Slackware tentu saja anda harus install Slackware di Komputer / Laptop anda. Tadi malem saya coba di Slackware 12.1, dan berjalan dengan lancar
. Kemudian download PostgreSQL nya di Situsnya langsung, jangan mampir-mampir dulu atau update status facebook …
. PostgreSQL yang saya coba PostgreSQL-8.3.7 kalau tidak mau repot Anda bisa download di sini.
Yang saya kasih itu masih dalam bentuk tar.gz jadi harus di extract dulu, Bisa lewat file manager (Konqueror atau Nautilus) Klik kanan pilih extract here. Atau lewat terminal konsole:
$ tar xzvf PostgreSQL-8.3.7.tar.gz
Kemudian Anda langsung masuk ke directory PostgreSQL-8.3.7 hasil extract tadi, kemudian baca file README atau INSTALL file tersebut sebagai petunjuk utama instalasi file. Sebelum Anda melakukan installasi PostgreSQL-8.3.7, buat directory untuk tempat installasi supaya anda mudah untuk mengaksesnya. Sebagai contoh saya membuat directory /app/PostgreSQL dengan perintah :
$ mkdir /app/PostgreSQL
Kemudian melakukan configurasi pada source PostgreSQL-8.3.7 dimana Anda akan menginstall PostgreSQL-8.3.7 tersebut. Sebagai contoh saya melakukan configurasi dengan prefix :
$ ./configure –prefix=/app/PostgreSQL
perintah di atas menyatakan bahwa PostgreSQL-8.3.7 yang akan saya install di letakkan pada directory /app/PostgreSQL. Setelah berhasil melakukan configure, Anda bisa melanjutkan ke tahap berikutnya :
$ make
$ make install
perintah di atas adalah perintah untuk melakukan installasi PostgreSQL-8.3.7, sebenarnya perintah diatas tidak hanya untuk PostgreSQL-8.3.7 saja, sebagian besar package yang tar.gz akan menggunakan perintah diatas untuk melakukan installasi.
Setelah berhasil melakukan installasi PostgreSQL-8.3.7, langkah selanjutnya yang harus Anda lakukan adalah membuat user postgres, user ini yang nantinya mempunyai hak akses pada database PostgreSQL.
$ /usr/sbin/adduser postgres
User postgres telah tercipta, sekarang masuk ke user postgres untuk beberapa configurasi.
$ su - postgres
membuat installasi directory data di PostgreSQL :
$ /app/PostgreSQL/bin/initdb -D /app/PostgreSQL/data/
Success. You can now start the database server using
Nah sekarang coba anda jalankan PostgreSQL dengan perintah :
$ /app/PostgreSQL/bin/postgres -D /app/PostgreSQL/data
perintah diatas masih manual, setiap kali kita akan menjalankan PostgreSQL kita harus menjalankan perintah tersebut. Akan sangat merepotkan apabila setiap komputer di restart, kita harus menjalankan perintah yang panjang kayak kereta api.
Untuk itu kita perlu melakukan beberapa configurasi lagi, supaya PostgreSQL dapat berjalan secara otomatis ketika komputer / laptop kita boot. Tapi sebelumnya edit profile untuk mendaftarkan PATH PostgreSQL, jadi pada saat menjalankan perintah PostgreSQL tidak perlu menyertakan PATH directory PostgreSQLnya lagi, berikut langkah - langkahnya :
- Jalankan perintah $ vi /etc/profile
- Kemudian cari baris berikut :
PS2=’> ‘
export PATH DISPLAY LESS TERM PS1 PS2 - Kemudian tambahkan dibawahnya baris berikut :
export PATH=/app/PostgreSQL/bin:$PATH - Restart komputer / laptop
Jadi pada saat menjalankan PostgreSQL Anda cukup menjalankan perintah :
$ psql -U postgres
setelah PostgreSQL bisa berjalan tanpa mengikutkan lokasi PATH nya, selanjutnya kita malakukan configurasi agar postgres berjalan secara otomatis ketika komputer / laptop kita boot. Buat file psql.sh kemudian di simpan pada directory /app/PostgreSQL, file ini yang nantinya akan di eksekusi saat komputer / laptop kita boot.
File /app/PostgreSQL/psql.sh
#!/bin/bash
# PostgreSQL startup script for Slackware Linux
# Copyright 2007 Adis Nezirovic <adis _at_ linux.org.ba>
# Licensed under GNU GPL v2
# Do not source this script (since it contains exit() calls)
# Before you can run postgresql you’ll need to create the
# database files in /var/lib/pgsql. The following should do
# the trick.
#
# $ su postgres -c "initdb -D /var/lib/pgsql/data"
#
LOGFILE=/var/log/postgresql
DATADIR=/app/PostgreSQL/data
POSTGRES=/app/PostgreSQL/bin/postgres
PIDFILE=postmaster.pid
# Return values (according to LSB):
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
pg_ctl()
{
CMD="/app/PostgreSQL/bin/pg_ctl $@"
su - postgres -c "$CMD"
}
if [ ! -f $POSTGRES ]; then
echo "Could not find ‘postgres’ binary. Maybe PostgreSQL is not installed properly?"
exit 5
fi
case "$1" in
"start")
echo "Starting PostgreSQL"
touch $LOGFILE
chown postgres:wheel $LOGFILE
chmod 0640 $LOGFILE
if [ ! -e $DATADIR/PG_VERSION ]; then
echo "You should initialize the PostgreSQL database at location $DATADIR"
exit 6
fi
if [ $(pgrep -f $POSTGRES) ]; then
echo "PostgreSQL daemon already running"
if [ ! -f $DATADIR/$PIDFILE ]; then
echo "Warning: Missing pid file $DATADIR/$PIDFILE"
fi
exit 1
else # remove old socket, if it exists and no daemon is running.
if [ ! -f $DATADIR/$PIDFILE ]; then
rm -f /tmp/.s.PGSQL.5432
rm -f /tmp/.s.PGSQL.5432.lock
pg_ctl start -w -l $LOGFILE -D $DATADIR
exit 0
else
echo "PostgreSQL daemon was not properly shut down"
echo "Please remove stale pid file $DATADIR/$PIDFILE"
exit 7
fi
fi
;;
"stop")
echo "Shutting down PostgreSQL…"
pg_ctl stop -l $LOGFILE -D $DATADIR -m smart
;;
"restart")
echo "Restarting PostgreSQL…"
pg_ctl restart -l $LOGFILE -D $DATADIR -m smart
;;
"reload")
echo "Reloading configuration for PostgreSQL…"
pg_ctl reload -l $LOGFILE -D $DATADIR -m smart
;;
"status")
if [ $(pgrep -f $POSTGRES) ]; then
echo "PostgreSQL is running"
if [ ! -e $DATADIR/$PIDFILE ]; then
echo "Warning: Missing pid file $DATADIR/$PIDFILE"
fi
exit 0
else
echo "PostgreSQL is stopped"
if [ -e $DATADIR/$PIDFILE ]; then
echo "Detected stale pid file $DATADIR/$PIDFILE"
fi
exit 0
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
;;
esac
atau kita tinggal download samplenya disini kemudian kita edit dan sesuaikan PATH nya dengan PATH installasi PostgreSQL.
Setelah selesai membuat file psql.sh, langkah berikutnya adalah merubah file /etc/rc.d/rc.local dengan menambah 2 baris kode yang tujuannya untuk memanggil file /app/PostgreSQL/psql.sh, berikut adalah kode programnya :
if [ -x /app/PostgreSQL/ ]; then
/usr/local/pg80/psql.sh start
fi
kemudian restart komputer / laptop atau menggunakan perintah
$/etc/rc.d/rc.local start
maka PostgreSQL akan berjalan, Tadi malem saya mencoba menjalankan perintah tersebut, tapi ternyata belum bisa. Saya cari solusinya di internet dengan melakukan searching di google, setelah baca - baca agak lama kemudian saya menemukan solusinya. Ternyata file /app/PostgreSQL/psql.sh yang saya buat harus di konversi dari dos ke unix dengan applikasi dos2unix, applikasi dos2unix ini di Slackware belum ada. Jadi kita harus mencarinya di internet, tenang aja anda bisa download applikasi itu disini.
untuk menjalankan dos2unix tentu saja kita harus menginstallnya, baca README disana ada cara menginstallnya. Kemudian gunakan perintah :
$ dos2unix /app/PostgreSQL/psql.sh
perintah diatas akan mengkonversi file dari dos ke unix / linux. Okey … sekarang jalankan PostgreSQL :
$/etc/rc.d/rc.local start
Starting PostgreSQL
waiting for server to start…. done
server started
PostgreSQL sudah siap digunakan, di posting berikutnya saya akan membahasa replication di PostgreSQL dengan menggunakan Slony-1. Jangan sampai ketinggalan
.
sahabatmu
-Ace de Starlight-
, setelah menghabiskan indomie 2 porsi kemudian seperti biasa, saya buka facebook.
