Centos 6上のGLIBCXX 3.4.15


8

Centos 6バージョンにGLIBCXX 3.4.15をインストールする必要があります(Steamでゲームのサーバーを実行するため)。私はググってみて、3.4.15が必要だというエラーが表示されたところにプログラムがインストールされたいくつかのWebサイトを持っています(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を直接インストールする方法を教えてください。

回答:


7

私はこれをハックと見なしますが、遭遇した問題など、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をインストールする必要があります、その後、上書きLD_LIBRARY_PATHまたはLD_PRELOAD単に蒸気の実行が変更され、ライブラリを見ているよう。

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

これを行う方法の詳細については、こちらのSO Q&A:単一のホスト上の複数のglibcライブラリでもう少し詳しく説明しています


@PMint-あなたに合った方法は?
slm

2 ls行目、3行目はいけませんlibstdc++.so.6.0.15 -> libstdc++.so.6.0.14か?
Runium 2013年

@Sukminder-はい、キャッチをありがとう。修繕。
slm

2

基本的に、CentOS(4.4.7)によって出荷されたlibstdc ++ RPMパッケージのバージョンは、アプリケーションにとって十分に新しいものではありません。CentOSは最新かつ最高のバージョンの代わりに長期的な安定性を提供するので、それは完全に予想外ではありません。

Fedoraは通常かなり進んでおり、問題なくサーバーを実行できます。

または、より最新のソースからlibstdc ++の新しいバージョンをビルドすることもできます。私はgcc.gnu.orgからの最新リリースであるgcc SRPMのCentOS SPECファイルから始めて、それらを作り直して自分のRPMをビルドします。

Cライブラリのアップグレードは、以前は予期しない方法でシステムを破壊する良い方法でしたが...


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.