Lua5.1.4をインストールする

ソースコードを取得して、ビルドする。
いつものごとく make して、make install。INSTALL_TOPにパスを設定しない場合は /usr/local になります。
さくっと終わると思ったけれど、readline-devel と ncurses-devel がないとコンパイルできませんでした。そのときのエラーメッセージと対応は以下参照。

$ tar zxf lua-5.1.4.tar.gz
$ cd lua-5.1.4
$ make linux
$ make install INSTALL_TOP=~/opt/lua-5.1.4

readline がない

以下のようなメッセージが出力されたときは readline-devel がインストールされていません。readline-devel をインストールします。

メッセージ
gcc -O2 -Wall -DLUA_USE_LINUX   -c -o lua.o lua.c
lua.h:16 から include されたファイル中,
                 lua.c:15 から:
luaconf.h:275:31: error: readline/readline.h: そのようなファイルやディレクトリはありません
luaconf.h:276:30: error: readline/history.h: そのようなファイルやディレクトリはありません
lua.c: In function ‘pushline’:
lua.c:182: 警告: implicit declaration of function ‘readline’
lua.c:182: 警告: assignment makes pointer from integer without a cast
lua.c: In function ‘loadline’:
lua.c:210: 警告: implicit declaration of function ‘add_history
対応
# yum install readline-devel.i386

ncurses がない

以下のようなメッセージが出力されたときは ncurses-devel がインストールされていません。ncurses-devel をインストールします。

メッセージ
gcc -O2 -Wall -DLUA_USE_LINUX   -c -o lua.o lua.c
gcc -o lua  lua.o liblua.a -lm -Wl,-E -ldl -lreadline -lhistory -lncurses
/usr/bin/ld: cannot find -lncurses
collect2: ld はステータス 1 で終了しました
対応
# yum install ncurses-devel.i386