先日の日記でbitcasaのlinuxクライアントをインストールしたことをかいたが、その続き。
インストール自体はyum install ですんでしまったので簡単だった。しかし、bitcasaプログラムを実行しようとするとエラーが。
# /usr/sbin/mount.bitcasa: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/sbin/mount.bitcasa)
さっそくググる。
gccが GLIBCXX_3.4.15に対応していないってこと?
ググっても英語のページしかでてこなくて、ちゃんと理解していないかもしれないけど、インストールされた/usr/lib/libstdc++.so.6 がGLIBCXX_3.4.15に対応していないということらしい。パッケージの単位としてはgccらしい。
調べ方
# strings /usr/lib/libstdc++.so.6 | grep GLIBCXX GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH
対処は GNU版gccをインストールして、ひつようなバイナリを配置して関連付ける。。。。
このへんの作業は不慣れで自信がないので、ググってたどり着いた人は要注意。ぼくはほぼしろうと同然なので疑ってかかってください。centosのレポジトリ上の最新のgccにしても改善しませんでした。(gcc-4.4.7-4.el6.i686)
GNU版gccというのはrpm形式では配布されておらず、自分でコンパイルをしないといけない。あまりやらない作業なのでドキドキ。下記記事をみながらやりました。
参考: http://cpp-dev-talk.blogspot.jp/2013/12/error-package-requires.html
# wget http://ftp.gnu.org/gnu/gcc/gcc-4.6.2/gcc-4.6.2.tar.gz # tar xf gcc-4.6.2.tar.gz # cd ./gcc-4.6.2/contrib/ # ./download_prerequisites # cd ../.. # mkdir staging # cd staging # ../gcc-4.6.2/configure –-prefix=/opt/gcc-4.6.2 # make (数時間まつ) # make install # cp /opt/gcc-4.6.2/lib/libstdc++.so.6.0.16 /usr/lib # ln -s libstdc++.so.6.0.16 libstdc++.so.6
これでエラーがでなくなりました。めでたしめでたし。
以上