Kali ini saya akan membahas Evergreen, sebuah alternatif ILS lainnya. Evergreen menyediakan klien berbasis Windoze dan GNU/Linux. Yang saya suka dari Evergreen adalah dia menggunakan PostgreSQL.

Pemasangan ILS ini agak kotor karena banyak melakukan kompilasi. Namun, bila menggunakan instruksi yang disediakan cukup mudah dilakukan. Kompleksitas dari Evergreen ini menyebabkan dia sangat cocok untuk sebuah sistem yang sangat besar.

Karena galat Apache pada BlankOn, saya pun kali ini menggunakan GNU/Linux Debian Wheezy.

Pasang OpenSRF

Ada beberapa langkah besar yang harus dilakukan untuk memasang OpenSRF:

  1. Mengompilasi OpenSRF.
  2. Menyiapkan antarmuka tambahan.
  3. Mengonfigurasi ejabberd dan menambahkan pengguna.
  4. Mengonfigurasi OpenSRF untuk terhubung ke ejabberd.
  5. Memulai OpenSRF.

Semua ini sesuai dengan panduan tertulis, Anda cukup mengikuti langkah-langkah berikut.

Mengompilasi OpenSRF

Yang pertama yang harus dilakukan adalah memasang pustaka OpenSRF. Untuk itu perlu memasang paket-paket yang dibutuhkan

$ sudo apt-get install build-essential

Unduh dan buka

$ wget http://evergreen-ils.org/downloads/opensrf-2.2.1.tar.gz
$ tar xvfz opensrf-2.2.1.tar.gz
$ cd opensrf-2.2.1

Untuk memulai membangun OpenSRF perlu memasang paket-paket ketergantungan. Caranya dengan menjalankan perintah:

$ sudo make -f src/extras/Makefile.install debian-wheezy

Ambil kopi, mandi pagi, dan sapa keluarga Anda sambil menunggu kompilasi ini selesai. Setelah selesai, konfigurasi, kompilasi, dan pasang:

$ ./configure --prefix=/opt/openils --disable-static
$ make
$ sudo make install

Berbeda dengan instruksi, saya menaruh di direktori /opt/openils dari pada /openils agar sesuai dengan standar FHS.

Tambahkan pengguna sistem yang akan menjalankan OpenSRF.

$ sudo useradd -m -s /bin/bash opensrf
$ echo "export PATH=\$PATH:/opt/openils/bin" | sudo tee -a /home/opensrf/.bashrc
$ sudo passwd opensrf

Buat seluruh OpenSRF menjadi milik pengguna opensrf.

$ sudo chown -R opensrf:opensrf /opt/openils/

Daftarkan direktori pustaka OpenSRF ke sistem operasi.

$ echo /opt/openils/lib | sudo tee -a /etc/ld.so.conf.d/opensrf.conf
$ sudo ldconfig

Selanjutnya adalah menambahkan 2 antarmuka jaringan.

Konfigurasi Antarmuka Jaringan Tambahan

OpenSRF membutuhkan ejabberd dengan dua IP yang berbeda. Yang pertama untuk komunikasi publik dan yang kedua untuk komunikasi pribadi. Untuk sistem sendiri, kita dapat menambahkan dua antarmuka loopback.

Caranya adalah dengan menambahkan baris-baris berikut di /etc/network/interfaces dengan menggunakan penyunting favorit Anda.

auto lo:10 lo:20
iface lo:10 inet static
        address 127.0.1.2
        netmask 255.0.0.0

iface lo:20 inet static
        address 127.0.1.3
        netmask 255.0.0.0

Lalu, nyalakan kedua antarmuka:

$ sudo ifup lo:20 lo:10

Masukkan alamat penamaan palsu ke /etc/hosts dengan menggunakan penyunting favorit Anda.

127.0.1.2       public.localhost        public
127.0.1.3       private.localhost       private

Selanjutnya adalah mengonfigurasi peladen ejabberd.

Konfigurasi ejabberd

Evergreen menggunakan protokol XMPP sebagai alat komunikasi. Peladen ejabberd digunakan sebagai penyedia protokol tersebut. Anda dapat juga membuat gTalk Anda sendiri berbasis aplikasi ini. Tapi, itu di luar cakupan tulisan ini.

Sebelum mengonfigurasi, matikan ejabberd terlebih dahulu:

$ sudo invoke-rc.d ejabberd stop

Buka konfigurasi /etc/ejabberd/ejabberd.cfg dan ubah/tambahkan baris-baris berikut:

  • Tambahkan domain publik dan pribadi yang telah didefinisikan tadi. Contohnya saya mengubah baris ke-61 dari:
    {hosts, ["localhost"]}.
    menjadi:
    {hosts, ["localhost", "private.localhost", "public.localhost"]}.
  • Mematikan mod_offline pada baris ke-584.
  • Menambah max_user_sessions dari 10 menjadi 10000 pada baris ke-460.
  • Mengubah seluruh max_stanza_size menjadi 2000000 pada baris ke-118 dan ke-136.
  • Mengubah seluruh maxrate menjadi 50000 pada baris ke-409 dan baris ke-414.

Setelah selesai mengubah semua itu, hidupkan kembali ejabberd:

$ sudo invoke-rc.d ejabberd start

Selanjutnya membuat pengguna ejabber.

Konfigurasi Pengguna Ejabberd

Seperti yang sudah kita buat sebelumnya, Evergreen menggunakan dua saluran (yang ditandai dengan dua host yang berbeda) dalam berkomunikasi. Pada contoh kali ini, kita membuat saluran “public.localhost” untuk komunikasi publik dan “private.localhost” untuk saluran pribadi.

Setiap saluran harus memiliki dua pengguna yang berfungsi sebagai:

router
Pengguna ini digunakan untuk menjadi broker untuk setiap layanan OpenSPF. Itu sebabnya, nama pengguna ini tidak dapat diganti dan harus bernama router. (hardcoded)
opensrf
Pengguna ini digunakan oleh setiap klien OpenSRF untuk terhubung ke OpenSRF. Nama pengguna dapat diganti dengan yang lain.

 Karena masing-masing saluran ada dua pengguna, maka dibuat empat pengguna:

$ sudo ejabberdctl register router private.localhost passwd123
$ sudo ejabberdctl register opensrf private.localhost passwd123
$ sudo ejabberdctl register router public.localhost passwd123
$ sudo ejabberdctl register opensrf public.localhost passwd123

Jangan lupa mengganti “passwd123” dengan sandi yang aman dan berbeda satu sama lain.

Konfigurasi OpenSRF

Terakhir untuk OpenSRF adalah dengan mengonfigurasi sistem. Masuk sebagai pengguna opensrf dan pergi ke direktori konfigurasi. Lalu, salin contoh konfigurasi menjadi konfigurasi kita.

$ sudo su - opensrf
$ cd /opt/openils/etc
$ cp opensrf_core.xml.example opensrf_core.xml
$ cp opensrf.xml.example opensrf.xml

Berhubung dalam artikel ini tidak diubah nama pengguna, tetap menggunakan opensrf, tidak ada yang perlu diubah. Namun, bila Anda mengubah nama pengguna, ganti nama pengguna opensrf menjadi nama pengguna yang Anda tentukan di opensrf_core.xml.

Buka opensrf_core.xml dengan penyunting favorit Anda untuk mengganti nama pengguna (bila bukan opensrf) dan sandi yang telah kita buat sebelum ini. Contohnya:

  • Mengganti nama pengguna pada baris ke-37 dan sandinya pada baris ke-38 untuk pengguna saluran public.localhost.
     
    private.localhost 
    opensrf
    passwd123
    5222
    
  • Mengganti nama pengguna pada baris ke-86 dan sandi pada baris ke-87 untuk pengguna saluran
    
    public.localhost
    opensrf
    passwd123
    5222
    
  • Mengganti sandi pada baris ke-111 untuk router saluran public.localhost.
    
      public.localhost
      5222
      /opt/openils/var/sock/unix_sock 
      router 
      passwd123
      router
      10
      5 
    
  • Mengganti sandi pada baris ke-133 untuk router saluran public.localhost.
    
      private.localhost
      5222
      router
      passwd123
      router
      10
      5
    

Selanjutnya, salin srfsh.xml.example ke direktori rumah opensrf. Konfigurasi ini diperlukan agar pengguna opensrf dapat menjalankan konsol OpenSRF, srfsh. Anda dapat menyalin srfsh ke pengguna Anda sendiri bila ingin menjalankan srfsh dari pengguna tersebut. Jangan lupa sesuaikan nama pengguna dan sandi yang diperlukan.

$ cp srfsh.xml.example ~/.srfsh.xml

Buka ~/.srfsh.xml dalam penyunting favorit Anda, ubah nama pengguna (jika diubah) dan sandi. Berikut contoh berkas saya:




  router
  private.localhost
  opensrf
  passwd123
  5222
  /opt/openils/var/log/srfsh.log
  4
  true

Setelah itu, kita bisa memulai OpenSRF.

Memulai OpenSRF

Setelah konfigurasi panjang yang telah kita lalui, saatnya memulai layanan OpenSRF. Untuk memulai OpenSRF, jalankan perintah berikut sebagai pengguna opensrf.

$ osrf_ctl.sh -l -a start_all

Setelah memulai, kita dapat menguji salah satu salurannya. Caranya, dengan masuk ke konsol OpenSRF (srfsh).

$ srfsh

Lalu jalankan operasi penambahan:

srfsh# request opensrf.math add 2,2

Received Data: 4

------------------------------------
Request Completed Successfully
Request Time in seconds: 0.004293
------------------------------------

Kalau benar, data yang didapatkan “4”.

Sebagai catatan, kalau Anda ada keperluan untuk mematikan OpenSRF, jalankan perintah:

$ osrf_ctl.sh -l -a stop_all

Kalau ini semua sudah dilakukan, keluar dari pengguna opensrf untuk kembali menjadi pengguna biasa. Ada hal-hal lain yang hendak dikerjakan.

Anda masih antusias? Karena ini baru memasang OpenSRF. Selanjutnya kita akan memasang basisdata PostgreSQL untuk Evergreen. Semangat!

Memasang Evergreen

Memasang Evergreen cukup dengan beberapa langkah:

  1. Memasang paket-paket yang dibutuhkan.
  2. Mengompilasi dan memasang Evergreen.
  3. Mengonfigurasi peladen Apache HTTPd.

Memasang Paket-paket yang Dibutuhkan

Unduh Evergreen, ekstraksi paket unduhan, dan masuk ke direktori kode sumber.

$ wget http://evergreen-ils.org/downloads/Evergreen-ILS-2.5.2.tar.gz
$ tar xvfz Evergreen-ILS-2.5.2.tar.gz
$ cd Evergreen-ILS-2.5.2/

Jalankan perintah yang sama seperti OpenSPF untuk memeriksa ketergantungan paket.

$ sudo make -f Open-ILS/src/extras/Makefile.install debian-wheezy

Sedikit catatan, skrip ini memasang paket-paket CPAN. Berikut beberapa pertanyaan yang saya jawab. Intinya, saya memilih KAMBING.ui.ac.id sebagai repositori CPAN berhubung fisiknya ada di ruang sebelah.

Would you like me to automatically choose some CPAN mirror
sites for you? (This means connecting to the Internet) [yes] no

Would you like to pick from the CPAN mirror list? [yes] yes

(1) Africa
(2) Asia
(3) Europe
(4) North America
(5) Oceania
(6) South America
Select your continent (or several nearby continents) [] 2

(1) China
(2) India
(3) Indonesia
(4) Iran
(5) Israel
(6) Japan
(7) Kazakhstan
(8) Pakistan
(9) Republic of Korea
(10) Singapore
(11) Taiwan
(12) Thailand
(13) Turkey
(14) Viet Nam
Select your country (or several nearby countries) [] 3

(1) http://cpan.cermin.lipi.go.id/
(2) http://cpan.mirrors.gudangteknologi.com/
(3) http://kambing.ui.ac.id/cpan/
(4) http://kartolo.sby.datautama.net.id/CPAN/
Select as many URLs as you like (by number),
put them on one line, separated by blanks, hyphenated ranges allowed
 e.g. '1 4 5' or '7 1-4 8' [] 3

Enter another URL or ENTER to quit: []

Yang terakhir saya hanya menekan tombol ENTER. Saya sengaja memisahkan setiap keterangan dan pertanyaan dengan baris kosong. Semoga ini membantu Anda.

Mengompilasi Evergreen

Saatnya mengompilasi Evergreen dengan tiga langkah:

$ PATH=/opt/openils/bin:$PATH ./configure --prefix=/opt/openils --disable-static
$ make
$ sudo make install

Seperti OpenSRF, saya memasang Evergreen di /opt/openils agar sesuai dengan FHS. Sebenarnya variabel STAFF_CLIENT_STAMP_ID tidak perlu dituliskan. Di dokumentasi disebutkan saat make install harus:

$ sudo make STAFF_CLIENT_STAMP_ID=rel_2_5_2 install

Tapi, toh, sebenarnya ia akan dipasang di tempat yang sama seperti versi yang ada. Ada atau pun tidak ada variabel itu, pasti akan ditaruh juga di tempat yang sama.

Selanjutnya membuat sebuah tautan simbolik sebagai peladen.

$ sudo ln -sf /opt/openils/var/web/xul/rel_2_5_2/server /opt/openils/var/web/xul/server

Pasang konfigurasi opensrf.xml dan opensrf_core.xml versi Evergreen.

$ sudo su opensrf -c "cp -b /opt/openils/conf/opensrf_core.xml.example /opt/openils/conf/opensrf_core.xml"
$ sudo su opensrf -c "cp -b /opt/openils/conf/opensrf.xml.example /opt/openils/conf/opensrf.xml"

Jangan lupa sunting kembali opensrf_core.xml dengan mengganti nama-nama pengguna dan sandi sesuai yang telah kita konfigurasi sebelumnya di OpenSRF.

Selanjutnya betulkan kembali kepemilikan /opt/openils menjadi milik opensrf.

$ sudo chown -R opensrf:opensrf /opt/openils

Memasang Konfigurasi Basisdata

Jalankan skrip konfigurasi basisdata

$ sudo make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-wheezy

Skrip akan memasang libdbd-postgres ke /usr/local/lib/dbd. Tambahkan pustaka tersebut ke dalam pustaka sistem.

$ echo "/usr/local/lib/dbd" | sudo tee -a /etc/ld.so.conf.d/eg.conf
$ sudo ldconfig

Buat pengguna evergreen dan isi sandinya dengan sandi yang aman.

$ sudo su postgres -c "createuser -s -P evergreen"

Selanjutnya jalankan skrip untuk mempopulasi basisdata.

$ perl Open-ILS/src/support-scripts/eg_db_config --update-config \
     --service all --create-database --create-schema --create-offline \
     --user evergreen --password passwd123 --hostname localhost --port 5432 \
     --database egdb --admin-user egadmin --admin-pass passwd123

Kalau Anda mau mencoba Evergreen dengan data contoh, tambahkan –load-all-sample sebagai parameter sehingga menjadi:

$ perl Open-ILS/src/support-scripts/eg_db_config --update-config \
     --service all --create-database --create-schema --create-offline \
     --user evergreen --password passwd123 --hostname localhost --port 5432 \
     --database egdb --admin-user egadmin --admin-pass passwd123 --load-all-sample

Pengguna evergreen sesuai dengan nama pengguna yang diciptakan oleh postgres. Sandinya mohon diganti.

Untuk inang peladen PostgreSQL memakai localhost dan port baku 5432. Basis data saya pilih egdb, bisa diganti namanya.

Untuk nama admin saya gunakan egadmin agar mudah diingat. Mohon sandinya diganti.

Pokoknya untuk setiap sandi selalu saya isi passwd123, karena ini cuma tutorial sesederhana mungkin. Namun, Anda tidak boleh melakukannya untuk mesin produksi.

Memasang Konfigurasi Apache2

Pasang konfigurasi Evergreen untuk peladen Apache2.

$ sudo cp Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/
$ sudo cp  Open-ILS/examples/apache/eg_{startup,vhost.conf} /etc/apache2/

Kalau Anda menggunakan Apache2 versi 2.4, salin konfigurasi yang ada di Open-ILS/examples/apache_24 ke direktori masing-masing.

Pasang SSL untuk Apache2

Untuk memasang SSL, buat sertifikat dengan melakukan perintah berikut:

$ sudo mkdir /etc/apache2/ssl
$ cd /etc/apache2/ssl
$ sudo openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key
Generating a 2048 bit RSA private key
......................................................................+++
...+++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Jawa Barat
Locality Name (eg, city) []:Depok
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Universitas Indonesia
Organizational Unit Name (eg, section) []:PPSI
Common Name (e.g. server FQDN or YOUR name) []:localhost
Email Address []:jp@localhost

Ganti organisasi dengan organisasi Anda. Ganti FQDN dengan alamat peladen yang benar. Dan seterusnya.

Evergreen meminta agar Apache2 dijalankan oleh pengguna opensrf, bukan www-data.

$ sudo sed -i.bak s/www-data/opensrf/g /etc/apache2/envvars
$ sudo chown -R opensrf:opensrf /var/lock/apache2

Aktifkan Evergreen dan matikan situs bawaan.

$ sudo a2dissite default
$ sudo a2ensite eg.conf

Selanjutnya menjalankan Evergreen.

Memperbaharui Konfigurasi

Jalankan perintah berikut setiap kali mengubah hierarki config.cgi.

$ sudo su opensrf -c "PATH=$PATH:/opt/openils/bin autogen.sh -u"

Menjalankan Evergreen

Jalankan ulang layanan-layanan yang diperlukan.

$ sudo invoke-rc.d ejabberd restart
$ sudo invoke-rc.d memcached restart

Jalankan ulang Evergreen.

$ sudo su opensrf -c "PATH=$PATH:/opt/openils/bin osrf_ctl.sh -l -a stop_all"
$ sudo su opensrf -c "PATH=$PATH:/opt/openils/bin osrf_ctl.sh -l -a start_all"

Jalankan ulang Apache2:

$ sudo invoke-rc.d apache2 restart

Terakhir, buka peramban dan pergi ke situs ini. Maka, akan didapati:

OPAC on Evergreen

OPAC on Evergreen

 

Bacaan Lebih Lanjut