はじめに
「gem install mysql2」をする際に「/usr/bin/ld: cannot find -lmysqlclient」というエラーで数時間ハマった。
基本的には
「/usr/bin/ld: cannot find」というエラーは「-l」に続くライブラリをインストールすれば解消するらしい
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a115makeerror.html
ライブラリのインストール
公式
http://dev.mysql.com/doc/refman/4.1/ja/linux-rpm.html
でも、解消されない場合
インストールはされたはずなのに同じエラーが出続ける・・・
原因は、/usr/lib64/にlibmysql関係のファイルが存在しないことだった。
参照されるフォルダには何も変化が無いためエラーが解消できなかったという。
対処手順
参照されるフォルダを確認する
# ls -la /usr/lib64/libmysqlclient*
ls: /usr/lib64/aaa*: そのようなファイルやディレクトリはありません
インストールされた場所を探す
# ls -la /usr/lib64/mysql/libmysqlclient*
-rw-r--r-- 1 root root 15276160 4月 19 2012 /usr/lib64/mysql/libmysqlclient.a
lrwxrwxrwx 1 root root 24 10月 30 17:11 /usr/lib64/mysql/libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
-rwxr-xr-x 1 root root 1511120 11月 30 2008 /usr/lib64/mysql/libmysqlclient.so.15.0.0
lrwxrwxrwx 1 root root 16 10月 30 16:30 /usr/lib64/mysql/libmysqlclient_r.a -> libmysqlclient.a
lrwxrwxrwx 1 root root 26 10月 30 17:11 /usr/lib64/mysql/libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
-rwxr-xr-x 1 root root 1518168 11月 30 2008 /usr/lib64/mysql/libmysqlclient_r.so.15.0.0
参照されるフォルダへコピーする
# cp /usr/lib64/mysql/libmysqlclient* /usr/lib64/
追伸
インフラに関する知識がまだまだ足りないと痛感。。
本来ならシンボリックリンクを張った方が良いと思う。