CentOS5.2にErlang R12B-5をインストールする



昨年始めようと思っていたerlangですが、結局何もせぬまま
一年が過ぎてしまいました。

今年こそはと思い、CentOS5.2にerlangをインストールしました。

Debianでは
apt-get install erlang
でインストールした気がするのですが、CentOSのyumではインストール
できない模様なので、ソースからインストールします。


ソースはこちら。
http://www.erlang.org/download.html


#wget http://www.erlang.org/download/otp_src_R12B-5.tar.gz


で、otp_src_R12B-5.tar.gzを取得し

/usr/local/src

にコピーします。
そこで、


#tar zxvf otp_src_R12B-5.tar.gz


として展開。


#./configure


すると

No curses library functions found


というエラーが発生するので、
http://d.hatena.ne.jp/sotarok/20080204/1202123608

ここを参考に


yum install ncurses-devel



インストール後、./configureするとこんなメッセージで終了します。


*********************************************************************
********************** APPLICATIONS DISABLED **********************
*********************************************************************
jinterface : No Java compiler found
odbc : ODBC library - link check failed
*********************************************************************


erlangからodbcが使用できるのは知っていたのですが、
javaと連携して、何か出来るのでしょうか?

今回は、基本の機能が使用できればよいので、今後調査することにします。



この後makeを実行すると、こんなエラーが発生します。


/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_next_cred':
(.text+0x738): undefined reference to `keyctl_read_alloc'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_get_principal':
(.text+0xf2b): undefined reference to `keyctl_read_alloc'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_getkeycount':
(.text+0x1196): undefined reference to `keyctl_read'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_clearcache':
(.text+0x1237): undefined reference to `keyctl_clear'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_clearcache':
(.text+0x1269): undefined reference to `keyctl_clear'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_resolve':
(.text+0x184f): undefined reference to `request_key'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_resolve':
(.text+0x1887): undefined reference to `keyctl_read'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_resolve':
(.text+0x190f): undefined reference to `keyctl_search'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_resolve':
(.text+0x1945): undefined reference to `add_key'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_resolve':
(.text+0x1ae5): undefined reference to `keyctl_search'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_initialize':
(.text+0x20f8): undefined reference to `add_key'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_store':
(.text+0x2b8f): undefined reference to `add_key'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_generate_new':
(.text+0x2d1b): undefined reference to `keyctl_search'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_generate_new':
(.text+0x2d5d): undefined reference to `add_key'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_start_seq_get':
(.text+0x32e5): undefined reference to `keyctl_read'
/usr/lib/libkrb5.a(cc_keyring.o): In function `krb5_krcc_destroy':
(.text+0x39a5): undefined reference to `keyctl_unlink'
/usr/lib/libkrb5support.a(selinux.o): In function `pop_fscreatecon':
(.text+0x1a): undefined reference to `is_selinux_enabled'
/usr/lib/libkrb5support.a(selinux.o): In function `pop_fscreatecon':
(.text+0x34): undefined reference to `setfscreatecon'
/usr/lib/libkrb5support.a(selinux.o): In function `pop_fscreatecon':
(.text+0x40): undefined reference to `freecon'
/usr/lib/libkrb5support.a(selinux.o): In function `push_fscreatecon':
(.text+0x77): undefined reference to `is_selinux_enabled'
/usr/lib/libkrb5support.a(selinux.o): In function `push_fscreatecon':
(.text+0x97): undefined reference to `getfscreatecon'
/usr/lib/libkrb5support.a(selinux.o): In function `push_fscreatecon':
(.text+0x149): undefined reference to `matchpathcon'
/usr/lib/libkrb5support.a(selinux.o): In function `push_fscreatecon':
(.text+0x160): undefined reference to `setfscreatecon'
/usr/lib/libkrb5support.a(selinux.o): In function `push_fscreatecon':
(.text+0x173): undefined reference to `freecon'
/usr/lib/libkrb5support.a(selinux.o): In function `push_fscreatecon':
(.text+0x198): undefined reference to `freecon'
collect2: ld はステータス 1 で終了しました
make[4]: *** [../priv/bin/i686-pc-linux-gnu/ssl_esock] エラー 1
make[4]: ディレクトリ `/usr/local/src/otp_src_R12B-5/lib/ssl/c_src' から出ます
make[3]: *** [opt] エラー 2
make[3]: ディレクトリ `/usr/local/src/otp_src_R12B-5/lib/ssl/c_src' から出ます
make[2]: *** [opt] エラー 2
make[2]: ディレクトリ `/usr/local/src/otp_src_R12B-5/lib/ssl' から出ます
make[1]: *** [opt] エラー 2
make[1]: ディレクトリ `/usr/local/src/otp_src_R12B-5/lib' から出ます
make: *** [libs] エラー 2



ここを参考に
http://d.hatena.ne.jp/kgbu/20080909/1220984877


#読み取り専用になっているので、パーミッションを適当に変更
chmod 777 lib/ssl/c_src/Makefile.in
vi lib/ssl/c_src/Makefile.in

#以下の記述を変更
#LIBS = @LIBS@
LIBS = @LIBS@ -lkeyutils -lselinux



再度、./configure、make、make installとして
インストールが終わりました。

R12B-5とバージョンがあがっているので、修正されている
かと思っていたのですが、ファイルの修正が必要なようですね。


もどる