Centos 6のGLIBCXX 3.4.15

Centos 6のGLIBCXX 3.4.15

Centos 6ビルドにGLIBCXX 3.4.15をインストールする必要があります(Steamでゲームサーバーを実行するには)。少しグーグルをしてみると、プログラムのインストール時に3.4.15( LoadLibrary ERROR: /usr/lib/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found)が必要だとエラーが出るサイトがいくつかありましたが、ただバイパス/インストールしない方法を使いましたね。これにより、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

それでは、Centos 6にGLIBCXX 3.4.15を直接インストールする方法は?

答え1

私はこれをハッキングだと思いますが、あなたが経験しているようなGLIBCとの互換性の問題を解決するために認めたいものよりも多く使用しました。

ハッキングには、/usr/lib特定のツールに必要なライブラリ名を含むリンクを作成することが含まれます。これにより、リンクはライブラリの代替名を指します。

はい

へのリンクを作成したいとしますlibstdc++.so.6

$ ls -l /usr/lib | grep libstdc++.so
lrwxrwxrwx.  1 root root       19 Dec 18  2010 libstdc++.so.6 -> libstdc++.so.6.0.14
-rwxr-xr-x   1 root root   950428 Sep 24  2010 libstdc++.so.6.0.14

結果は次のとおりです。

$ ln -s libstdc++.so.6 libstdc++.so.6.0.15

検査結果:

$ ls -l /usr/lib | grep libstdc++.so
lrwxrwxrwx.  1 root root       19 Dec 18  2010 libstdc++.so.6 -> libstdc++.so.6.0.14
lrwxrwxrwx.  1 root root       19 Dec 18  2010 libstdc++.so.6.0.15 -> libstdc++.so.6.0.14
-rwxr-xr-x   1 root root   950428 Sep 24  2010 libstdc++.so.6.0.14

しかし、あなたのライブラリにまだバージョン文字列がありませんので、このアプローチがうまくいくかどうかはわかりませんGLIBCXX_3.4.15

クラックが失敗した場合は、他のディレクトリにGLIBCをインストールしてから上書きするか、Steamを実行して変更されたライブラリを確認する必要がありLD_LIBRARY_PATHますLD_PRELOAD

はい

$ LD_PRELOAD='mylibc.so anotherlib.so' program

これを行う方法の詳細については、このSO Q&Aを参照してください。単一ホストの複数のglibcライブラリ

答え2

デフォルトでは、CentOS(4.4.7)に付属しているlibstdc ++ RPMパッケージのバージョンは、アプリケーションにとって十分に新しいバージョンではありません。 CentOSは最新かつ最高レベルではなく長期的な安定性を提供するため、これはまったく予期しないことではありません。

Fedoraは一般的にはるかに先行しており、問題なくサーバーを実行できます。

あるいは、最新のソースから最新バージョンのlibstdc ++をビルドすることもできます。私はgcc SRPM(gcc.gnu.orgの最新バージョン)にあるCentOS SPECファイルから始めて、このファイルを再構築して独自のRPMを構築します。

これまでは、Cライブラリへのアップグレードが予期せぬ方法でシステムを停止するのに最適な方法でした。

答え3

Nodejs v6.9.2のgrpcモジュール(google-cloudから取得)にも同じ問題があります。この解決策は私にとって効果的でした。https://forum.qt.io/topic/25032/solved-centos-6-3-glibcxx_3-4-15-not-found-error-in-qt5-install/8)

tar xzf gcc-4.6.2.tar.gz
cd gcc-4.6.2
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.6.2/configure --prefix=/opt/gcc-4.6.2
make
make install

関連情報