『プログラミングErlang』11章のIRC Lite。オーム社のサイトからコードを落として実行しても、うまく動かなかった。以下、解決までの道のり。
lib_md5が無いというエラーになる
これは原著のフォーラムで解決策が見つかった。
getting error on starting chat-client: lib_md5 missing?
socket_distでmakeを実行する前に、その一つ上のディレクトリ(日本語版ならjaerlang-code-ja)でmakeを実行しなければならない。
io_widgetのウィンドウが表示されない(Ubuntuの場合)
tk がインストールされていないと動かない。
apt-get install tk
標準ではtk 8.4がインストールされる。
io_widgetのウィンドウが表示されない(Mac OS Xの場合)
MacPortsでErlangをインストールした場合、自動的にtk 8.5.5がインストールされる。しかし下のようなエラーが出て動かない。
Application initialization failed: couldn't connect to display ":0.0"
Error in startup script: couldn't connect to display ":0.0"
while executing
"load /opt/local/lib/tk8.5/../libtk8.5.dylib Tk"
("package ifneeded Tk 8.5.5" script)
invoked from within
"package require Tk 8.3"
(file "/opt/local/lib/erlang/lib/gs-1.5.9/priv/gstk.tcl" line 7)
いろいろ検索した結果、X11.appを起動していないと動かないということに気付いた(「アプリケーション」→「ユーティリティ」→「X11.app」)。
MacPortsのtkには「quartz: Use native Mac OS X UI instead of X11」というvariantsがあって、これを有効にすればX11を起動しなくても動くかも?と思ったが、駄目だった。
……
いずれも初歩的なことなんだが、解決までにずいぶんと時間がかかってしまった。