yaourt -S lsyncd
で入れようとしたらエラーになった。
エラー内容はこんな感じ。
[ 11%] Linking C executable lsyncd
CMakeFiles/lsyncd.dir/lsyncd.c.o: In function `l_exec':
lsyncd.c:(.text+0x1764): undefined reference to `lua_rotate'
lsyncd.c:(.text+0x181e): undefined reference to `lua_rotate'
lsyncd.c:(.text+0x18aa): undefined reference to `lua_rotate'
CMakeFiles/lsyncd.dir/lsyncd.c.o: In function `load_runner_func':
lsyncd.c:(.text+0x3710): undefined reference to `lua_rotate'
CMakeFiles/lsyncd.dir/lsyncd.c.o: In function `main1':
lsyncd.c:(.text+0x49e8): undefined reference to `lua_rotate'
CMakeFiles/lsyncd.dir/lsyncd.c.o:lsyncd.c:(.text+0x4a7f): more undefined references to `lua_rotate' follow
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/lsyncd.dir/build.make:154: lsyncd] Error 1
make[1]: *** [CMakeFiles/Makefile2:132: CMakeFiles/lsyncd.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
当たり前かも知れないが、その後ソースからビルドしても同様。
解決方法としては、以下を実施する。
-
sudo pacman -Rs lua52
で Lua 5.2 を削除 - yaourt 時に PKGBUILD を編集して依存関係を lua52 から lua に変更
GitHub issue でもこの件があがっていて https://github.com/axkibe/lsyncd/issues/501 /usr/lib/liblua*.so のバージョンが複数あるのが問題とのこと。