Instalasi Erlang dari Source di Linux: Beberapa Point yang Tidak Terdapat di Manual

Posted on April 22, 2011

0


Sebenarnya jika distro Linux anda mempunyai paket Erlang dan semua berjalan dengan baik, saya lebih menyarankan menggunakan paket dari distro tersebut secara langsung kecuali memang ada hal-hal yang mendesak. Saya menginstall dari src karena distro yang saya gunakan (Arch Linux) mempunyai paket yang tidak bleeding edge atau terbaru. Paket yang ada sudah lama ditandai obsolete dan belum ada update sampai saat ini (bisa dilihat di http://www.archlinux.org/packages/extra/i686/erlang/).  Well, bleeding edge sebenarnya bukan yang harus, hanya saja saya merasa lebih “bahagia” dengan paket-paket yang bleeding edge.

Sayangnya, instalasi Erlang dari source ternyata “banyak hambatan”. Ada beberapa kegagalan yang saya alami dan akan saya tulis disini beserta solusinya. Hal-hal ini tidak dijelaskan di manual instalasi. Untuk memahami tulisan ini, anda sudah harus memahami struktur direktori di Linux, prosedur instalasi dari source (./configure, make, make install dan target make lainnya).

Konfigurasi yang saya jalankan:

./configure –prefix=/opt/erlang –enable-threads –enable-smp-support –enable-kernel-poll –enable-sctp –enable-hipe –enable-native-libs –enable-shared-zlib

Isi dari file environment yang saya source di bash adalah sbb:

 E_HOME=/opt/erlang/lib/erlang

PATH=$PATH:$E_HOME/bin:/opt/erlang/rebar

MANPATH=$MANPATH:$E_HOME/man

export PATH

export MANPATH

Beberapa pelajaran dari instalasi:

  1. make dan kemudian make install berjalan dengan baik (karena semua dependensi paket saya terpenuhi).
  2. Saat instalasi wxgtk saya update, library wxErlang menjadi tidak berfungsi. Saya mencoba menginstall di bagian wxErlang saja, tetapi tidak berhasil (catatan: ada kemungkinkan konfigurasi dan setting saya yang “kalang kabut” sehingga ada kemungkinan hal tersebut menjadi tidak berhasil). Jika ini bermasalah lagi, sebaiknya dicoba masuk ke $OTP_SRC/lib/wx – kemudian ./configure; make; make install di direktori tersebut. Sistem akan mengenali lokasi dari Erlang OTP dan akan menginstall di lokasi tersebut tanpa perlu membuat parameter di ./configure.
  3. Hasil kompilasi Erlang sebaiknya tetap disimpan, jangan dihapus, siapa tahu perlu reinstall 🙂
  4. Saat mengkompilasi dokumentasi dengan make docs, terdapat error karena paket di di Arch Linux ternyata menggunakan fop versi 1.0. Downgrade ke versi 0.95 bisa memecahkan masalah.
  5. Saat menginstall dokumentasi dengan make install-docs, terdapat error:

[bpdp@bpdp-arch otp_src_R14B02]$ make install-docs

ERL_TOP=/opt/tmp/otp_src_R14B02 INSTALLROOT=/opt/erlang/lib/erlang PATH=/opt/tmp/otp_src_R14B02/bootstrap/bin:${PATH} \

make RELEASE_ROOT=/opt/erlang/lib/erlang release_docs

make[1]: Entering directory `/opt/tmp/otp_src_R14B02′

/opt/tmp/otp_src_R14B02/lib/erl_docgen/priv/bin/xref_mod_app.escript -topdir /opt/tmp/otp_src_R14B02 -outfile /opt/tmp/otp_src_R14B02/make/i686-pc-linux-gnu/mod2app.xml

escript: exception error: undefined function xmerl:export_simple/2

in function  erl_eval:do_apply/5

in call from erl_eval:expr/5

in call from erl_eval:exprs/5

in call from erl_eval:local_func/5

in call from escript:interpret/4

in call from escript:start/1

in call from init:start_it/1

make[1]: *** [mod2app] Error 127

make[1]: Leaving directory `/opt/tmp/otp_src_R14B02′

make: *** [install-docs] Error 2

[bpdp@bpdp-arch otp_src_R14B02]$

Setelah mencari-cari, saya menemukan referensi tentang masalah ini di http://groups.google.com/group/erlang-programming/browse_thread/thread/4ec9d0d7e318bfb9 – penyebabnya karena shebang /usr/bin/env escript  tidak berjalan dengan baik. Jadi saya melihat ke pesan error di atas dan melihat bahwa masalah utama terletak di file /opt/tmp/otp_src_R14B02/lib/erl_docgen/priv/bin/xref_mod_app.escript. File tersebut saya edit di bagian shebang menjadi lokasi absolut dari escript:

#!/opt/erlang/lib/erlang/bin/escript

%%#!/usr/bin/env escript

Setelah itu, instalasi dokumentasi bisa berjalan dengan baik.

Have fun with Erlang.

Tagged: