web-dev-qa-db-ja.com

libstdc ++。so.6を見つける方法:RHEL 6のGLIBCXX_3.4.19が含まれていますか?

私はLinuxサーバーを使用しています。

> cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.7 (Santiago)

(ウィキペディアから:Red Hat Enterprise Linux 6Fedora 12

6.7, also termed Update 7, 22 July 2015 (kernel 2.6.32-573)
6.8, also termed Update 8, 10 May 2016 (kernel 2.6.32-642))

カーネル

> uname -r
2.6.32-642.11.1.el6.x86_64

> uname -s
Linux

> uname -v
#1 SMP Tue Nov 15 22:57:18 EST 2016

> cat /proc/version
Linux version 2.6.32-642.11.1.el6.x86_64 (sandman@node3res7) (gcc version 4.4.7 20120313 (SuSE 4.4.7-17) (GCC) ) 
#1 SMP Tue Nov 15 22:57:18 EST 2016

gccバージョン

> gcc --version
gcc (GCC) 4.4.7 20120313 (SuSE 4.4.7-17)

tensdorflowをインストールしようとすると、ライブラリが見つからないという問題が発生します。

ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by /opt/ccda/anaconda2/envs/tensorflow35/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so)

私のlib64/libstdc ++。so.6でわかるように、私はGLIBCXX_3.4.19

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4 
GLIBCXX_3.4.1  
....  
GLIBCXX_3.4.12  
GLIBCXX_3.4.13  
GLIBCXX_FORCE_NEW  
GLIBCXX_DEBUG_MESSAGE_LENGTH 

私は次のコマンドで見ます:

yum whatprovides */libstdc++.so.6
...
libstdc++-4.4.7-17.el6.x86_64 : GNU Standard C++ Library
Repo        : installed
Matched from:
Filename    : /usr/lib64/libstdc++.so.6

だから私の質問はどこでlibstdc ++-4.xy-z.el6.x86_64を見つけることができますかGLIBCXX_3.4.19を含み、gccバージョンを使用してサーバーRHEL 6にインストールできますか?

このページから使用するバージョンが少しわかりません https://www.rpmfind.net/linux/rpm2html/search.php?query=libstdc%2B%2B.so.6%28GLIBCXX_3。 4.19%29&submit = Search + ...&system =&Arch =

  1. Fedora12またはRHEL6のバージョンが表示されません
  2. Archx86_64が必要です
  3. 何かgcc(GCC)4.4.7を推測する必要があります
  4. 64ビットが必要だと思います

私は次の良いmacth?私は名前と情報でかなり混乱しています:

libstdc++6-gcc48-32bit-4.8.5-21.1.x86_64.html   The standard C++ shared library OpenSuSE leap updates for 42.1  libstdc++6-gcc48-32bit-4.8.5-21.1.x86_64.rpm

サーバーにインターネットアクセスがないので、ファイルをローカルにダウンロードしてサーバーにコピーし、インストールを行う必要があります。

ご協力いただきありがとうございます
乾杯
ファビアン

ps:ボーナス質問SuSE 4.4.7-17(GCC)、混乱しています。SuseはRedhatのようなLinuxディストリビューションであることがわかりました。

6

ここで解決策を見つけました: https://www.linuxquestions.org/questions/red-hat-31/lib-libstdc-so-6-version-%60glibcxx_3-4-15 '-not -見つかった-4175419985 /

Libstdc ++-so.6をEL6で動作する新しいバージョンに置き換える:libstdc ++ 6_4.7.1-2_i386.debを解凍 http://ftp.de.debian.org/debian/pool...7.1- 2_i386.deb with:ar -x libstdc ++ 6_4.7.1-2_i386.deb && tar xvf data.tar.gz Next:1)su; 2)cp libstdc ++。so.6.0.17/usr/lib/3)cd/usr/lib/&& rm libstdc ++。so.64)ln -s libstdc ++。so.6.17libstdc ++。so.6

Debianパッケージを提案する理由:これは、EL6/CentOS 6で使用するのに十分古いglibcでコンパイルされた(gcc)libstdc ++バージョンです。

3
Michele Belotti

更新された手順(ファイルが移動されたように見えるため):

curl -O http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6-4.7-dbg_4.7.2-5_i386.deb
ar -x libstdc++6-4.7-dbg_4.7.2-5_i386.deb && tar xvf data.tar.gz
mkdir backup
cp /usr/lib/libstdc++.so* backup/
cp ./usr/lib/i386-linux-gnu/debug/libstdc++.so.6.0.17 /usr/lib
ln -s libstdc++.so.6.0.17 libstdc++.so.6
1
Serge Rogatch