lsyncdがluaまわりでコケてコンパイルできない、しかも動かない

いろいろと大人の事情があって、そうやすやすとrootになれなかったり、/usr/localの下がイジれないなんて状況はやっぱりあるわけで、sudoしてyumしてポーン!みたいなそんな簡単な日は来ないわけでして。

するとやっぱりソースからちまちまコンパイルして動かすわけなんですが、2.6.32-100.28.5.el6.x86_64ゴニョゴニョ上でlsyncdを入れた(動くとこまでやった)話です。

今日付けでいちばん新しいlsyncdを持ってきてconfigure→makeしてもすぐにビルドしてくれません(でした)。理由はluaのライブラリ不足。これは別にパッケージとしてインストールしなくても、コンパイルだけして適当なとこに置いとけば、その場所使って環境変数いじくってやればOK、それでもまだ怒られるのはluaの最新バージョンを使ってはならぬという落とし穴があるからです。(情報元これ、https://groups.google.com/forum/?fromgroups=#!topic/lsyncd/9pXr3lQoPB0

>Notw that Lua 5.2.0 is still in alpha stage and not yet released. I suppose thats your problem, try with lua 5.1.4.

luaの場所を環境変数経由でセットするには、同じ引用元の情報から

> export LUA_CFLAGS='-I/(インストール先のincludeディレクトリ) -lm -ldl'
> export LUA_LIBS='/(インストール先のlib)/liblua.a' 
 
(まわりくどいので…luaを/usr/hoge下に置いた場合
LUA_CFLAGS='-I/usr/hoge/include -lm -ldl'
LUA_LIBS='/usr/hoge/lib/liblua.a'、
include下にはlua*.h、lib下にはliblua.aがあります )
 
これでlsyncdは作成されるはずです。
あと、巷の情報ではどういうわけかリモートマシンとの同期の例ばっかりで、lsyncd動かすのにrsyncの設定まで(しかもrootで…)なんてちょっと回りくどかったんですが、別に2箇所ともローカルでやったっていいわけですよね。なのでその場合はrsyncのオプションとかconfigとか別にlsyncdとは直接なんの関係もないです。rsyncがまともに(期待したとおりに)動けばいいという話なだけで。

そのconfigにしても/etcみたいな超微妙なところに置かなくても第1引数でセットしてやれば別にどこにあったってかまいません(詳しくはlsyncd --helpで。)

…そして最後にもう1つ、巷の情報をコピってきてrsyncのオプションをrsyncOpsで指定してたりするると、

'did you mean rsyncOpts with "t"?'

なんて感じで止まります。これはrsyncOptsじゃなくてrsyncOpsというミススペルが含まれているからなんですが、コレってもしかしてrsyncの-tオプションの指定違い?かと思うじゃないですか。紛らわしいですよね。私だけか。

Popular posts from this blog

Thunderbirdのフィルタで正規表現

Windows10にTeratermを新規で入れたら文字化けしてUTF-8の設定もできない→日本語設定にしてフォントの文字セットも変更すると直る

Chrome (SRWare Iron)で複数ユーザを切り替えたい、しかもコマンドラインオプションで。