Ubuntu 18.04 において rbczmq のインストールをなんとか進めてみる

0pt   2018-07-12 15:24
IT技術情報局

ConoHaでUbuntu 18.04に乗り換えたのですが、なんぼか更新しているうちにrbczmqのインストールでエラー停止してしまいました。
rbenv,bundlerも使っていますので呪文がしつこいですが(省略はしたくない)あしからず。

Gemfile gem "rbczmq" console rbenv exec bundle install error_message zdir.c: In function ‘zdir_new’: zdir.c:156:9: error: ‘readdir_r’ is deprecated [-Werror=deprecated-declarations] int rc = readdir_r (handle, entry, &result); ^~~ In file included from ../include/czmq_prelude.h:257:0, from ../include/czmq.h:31, from zdir.c:35: /usr/include/dirent.h:183:12: note: declared here extern int readdir_r (DIR *__restrict __dirp, ^~~~~~~~~ zdir.c:159:13: error: ‘readdir_r’ is deprecated [-Werror=deprecated-declarations] rc = readdir_r (handle, entry, &result); ^~ In file included from ../include/czmq_prelude.h:257:0, from ../include/czmq.h:31, from zdir.c:35: /usr/include/dirent.h:183:12: note: declared here extern int readdir_r (DIR *__restrict __dirp, ^~~~~~~~~ cc1: all warnings being treated as errors Makefile:774: recipe for target 'zdir.lo' failed

readdir_r関数を使ってくれるなというエラーなんですけど、これ数年未改修で放置されててついにコンパイラがエラー扱いし始めたのですね。
で、このエラーの出所なんですが、rbczmqがリンクするczmqライブラリのビルドの中で起こってます。ライブラリのソースが古い、ということでしょうね。なんとかしたってえな作者さん。エラーを抑止する手もありますけど、ここではオリジナルのライブラリのバイナリを参照するようにいたしましょう。

console sudo apt install libzmq3-dev libczmq-dev rbenv exec bundle config build.rbczmq --with-system-libs rbenv exec bundle install

もともと二大ライブラリをガッチャンコしてるので、実行時に競合するかもしれませんが、インストールまではできています。

参考

http://zeromq.org/distro:debian
rbczmq の幾つかのインストール方法

Source: ruby tag

   ITアンテナトップページへ
情報処理/ITの話題が沢山。