FreeBSDで、luasocketを使おうとすると、「invalid file format」
2008/10/02
Linuxで動作していたメール送信も行なうLuaで作ったWebアプリをFreeBSD上で動かそうとしてました。なんとか、Luaのライブラリをコンパイルしながら、Webアプリの部分は、動くようになったのですが、「だいたい大丈夫かな」と思って最後にメール送信部分を試してみると、エラーが発生してました。
調査してみると、require “socket.smtp” で socket/core.so を読み込むときに、下のようなエラーが出るようでした。
error loading module 'socket.smtp' from file '/usr/lib/lua/5.1/socket/smtp.lua': /usr/lib/lua/5.1/socket/smtp.lua: invalid file format stack traceback: [C]: ? [C]: in function 'require' stdin:1: in main chunk [C]: ?
このエラーメッセージを元にGoogleで検索していると、FreeBSDで、「invalid file format」が出るのは、ELF形式のライブラリを読み込もうとした時というような事らしいんですが、今までずっとLinux上で作ってきたので、FreeBSDのバイナリ形式とかがわかってませんorz.というか、FreeBSDとLinuxの違いというものに、初めてぶつかってるかもしれない。
m(_ _)m FreeBSDに詳しい方、「invalid file format」関連の話は何を調べたらいいとかでも教えて欲しいです^^;
READMEを見ると、正式にFreeBSD対応を謌ってはいないようです;;
This is the LuaSocket 2.0.1. It has been tested on WinXP, Mac OS X, and Linux.
うぅ…どうしようか。
追記 2008/10/03
結局、メール送信に関する部分をperlで書いて、そのスクリプトを呼び出すようにして逃げてしまいました。