CentOS 7にtd-agent: fluent-plugin-sqlをインストール


事象

CentOS 7上にtd-agent2をインストールしようとするとpg-0.16.0の導入の際に失敗します。

その場合のwork aroundを見つけたので掲載します。

エラー(mkmf.log)

have_library: checking for PQconnectdb() in -lpq... -------------------- no

"gcc -o conftest -I/opt/td-agent/embedded/include/ruby-2.1.0/x86_64-linux -I/opt/td-agent/embedded/include/ruby-2.1.0/ruby/backward -I/opt/td-agent/embedded/include/ruby-2.1.0 -I. -I/usr/pgsql-9.4/include  -I/opt/td-agent/embedded/include   -I/opt/td-agent/embedded/include -O3 -g -pipe -fPIC conftest.c  -L. -L/opt/td-agent/embedded/lib -Wl,-R/opt/td-agent/embedded/lib -L/usr/pgsql-9.4/lib -Wl,-R/usr/pgsql-9.4/lib -L/opt/td-agent/embedded/lib -Wl,-R/opt/td-agent/embedded/lib -L. -Wl,-rpath,/opt/td-agent/embedded/lib -fstack-protector -L/opt/td-agent/embedded/lib -rdynamic -Wl,-export-dynamic -L/opt/td-agent/embedded/lib  -Wl,-R/opt/td-agent/embedded/lib      -Wl,-R -Wl,/opt/td-agent/embedded/lib -L/opt/td-agent/embedded/lib -lruby -lpq  -lpthread -ldl -lcrypt -lm   -lc"
/lib64/libselinux.so.1: `lzma_code@XZ_5.0' に対する定義されていない参照です
/lib64/libselinux.so.1: `lzma_stream_decoder@XZ_5.0' に対する定義されていない参照です
/lib64/libselinux.so.1: `lzma_end@XZ_5.0' に対する定義されていない参照です
collect2: エラー: ld はステータス 1 で終了しました

Work Around

$ cd /opt/td-agent/embedded/lib
$ sudo mv liblzma.so liblzma.so.org
$ sudo mv liblzma.so.5 liblzma.so.5.org
$ sudo ln -s /usr/lib64/liblzam.so.5.0.99 liblzma.so
$ sudo ln -s /usr/lib64/liblzam.so.5.0.99 liblzma.so.5

try td-agent-gem install again

$ sudo /usr/sbin/td-agent-gem install fluent-plugin-sql

--
Happy Hacking