pythonを使用してTensorflowバインディングを正常にインストールしました。しかし、Tensorflowをインポートしようとすると、次のエラーが発生します。
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found (required by /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so)
GLIBC_2.15を2.17に更新しようとしましたが、運はありません。
私は同じ問題を抱えていたので、グーグルでこれらの手順を実行しました:
$ Sudo pip install --upgrade virtualenv
$ virtualenv --system-site-packages ~/tensorflow
$ cd ~/tensorflow
$ source bin/activate
$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
$ cd /tmp
$ wget http://launchpadlibrarian.net/137699828/libc6_2.17-0ubuntu5_AMD64.deb
$ wget http://launchpadlibrarian.net/137699829/libc6-dev_2.17-0ubuntu5_AMD64.deb
$ mkdir libc6_2.17
$ cd libc6_2.17
$ ar p ../libc6_2.17-0ubuntu5_AMD64.deb data.tar.gz | tar zx
$ ar p ../libc6-dev_2.17-0ubuntu5_AMD64.deb data.tar.gz | tar zx
$ cd -
$ LD_LIBRARY_PATH=/tmp/libc6_2.17/lib/x86_64-linux-gnu/ /tmp/libc6_2.17/lib/x86_64-linux-gnu/ld-2.17.so bin/python local/lib/python2.7/site-packages/tensorflow/models/image/mnist/convolutional.py
終了するには:
$ deactivate
それは私のために働く。
BR_User solution を試してみたが、まだ迷惑だった:
ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found
CentOS 6.7を使用していますが、C++標準ライブラリが更新されていないため、BR_Userソリューションをビルドするために正しいlibstdc ++パッケージを抽出しましたが、仮想環境は必要ありません。
あなたがすでにテンソルフローをインストールしていると仮定すると、それは与えます:
mkdir ~/my_libc_env
cd ~/my_libc_env
wget http://launchpadlibrarian.net/137699828/libc6_2.17-0ubuntu5_AMD64.deb
wget http://launchpadlibrarian.net/137699829/libc6-dev_2.17-0ubuntu5_AMD64.deb
wget ftp.riken.jp/Linux/scientific/7.0/x86_64/os/Packages/libstdc++-4.8.2-16.el7.x86_64.rpm
ar p libc6_2.17-0ubuntu5_AMD64.deb data.tar.gz | tar zx
ar p libc6-dev_2.17-0ubuntu5_AMD64.deb data.tar.gz | tar zx
rpm2cpio libstdc++-4.8.2-7mgc30.x86_64.rpm| cpio -idmv
次にpythonを実行します:
LD_LIBRARY_PATH="$HOME/my_libc_env/lib/x86_64-linux-gnu/:$HOME/my_libc_env/usr/lib64/" $HOME/my_libc_env/lib/x86_64-linux-gnu/ld-2.17.so `which python`
うまくいかない場合、 別の解決策 がありますが、気に入らないでしょう。
さて、ここで 前の回答 で言及した他の解決策がありますが、それはよりトリッキーですが、GLIBC> = 2.12およびGLIBCXX> = 3.4.13のシステムで常に動作するはずです。私の場合はCentOS 6.7でしたが、Ubuntu 12.04でも問題ありません。
別のマシンまたは分離インストールのいずれかで、c ++ 11をサポートするgccのバージョンが必要になります。今のところではありません。
ここで行うことは、libcとlibstdc ++の依存関係を「弱める」ために_pywrap_tensorflow.soバイナリを編集し、ldが作成するスタブのリンクを受け入れるようにすることです。次に、不足しているシンボルのスタブを作成し、最後にpythonを実行するときにこれらすべてをプリロードします。
まず、ジェームズの素晴らしい記事( http://www.lightofdawn.org/wiki/wiki.cgi/NewAppsOnOldGlibc )と貴重なアドバイスに感謝したいと思います。彼なし。
依存関係を弱めることから始めましょう。_pywrap_tensorflow.soの適切なバイトを置き換えるだけです。この手順は、テンソルフローの現在のバージョン(0.6.0)でのみ機能することに注意してください。 virtualenv を作成してアクティブ化していない場合(管理者でない場合、virtualenvがソリューションである場合、別の方法は--user
フラグをpipコマンドに追加することです)、 tensorflow 0.6.0をインストールします(gpuバージョンが必要な場合は、URLのcpuをgpuに置き換えます)。
pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.6.0-cp27-none-linux_x86_64.whl
そして、迷惑な依存関係をすべて弱めましょう。ここに、tensorflowのCPUバージョンのコマンドを示します。
TENSORFLOW_DIR=`python -c "import imp; print(imp.find_module('tensorflow')[1])"`
for addr in 0xC6A93C 0xC6A99C 0xC6A9EC 0xC6AA0C 0xC6AA1C 0xC6AA3C; do printf '\x02' | dd conv=notrunc of=${TENSORFLOW_DIR}/python/_pywrap_tensorflow.so bs=1 seek=$((addr)) ; done
そして、これはgpuのものです(正しいものだけを実行しないと、バイナリが破損します)。
TENSORFLOW_DIR=`python -c "import imp; print(imp.find_module('tensorflow')[1])"`
for addr in 0xDC5EA4 0xDC5F04 0xDC5F54 0xDC5F74 0xDC5F84 0xDC5FA4; do printf '\x02' | dd conv=notrunc of=${TENSORFLOW_DIR}/python/_pywrap_tensorflow.so bs=1 seek=$((addr)) ; done
次の方法で確認できます。
readelf -V ${TENSORFLOW_DIR}/python/_pywrap_tensorflow.so
ここで何が起こっているのかを理解したい場合は、記事をご覧ください。
次に、不足しているlibcシンボルのスタブを作成します。
mkdir ~/my_stubs
cd ~/my_stubs
MYSTUBS=~/my_stubs
printf "#include <time.h>\n#include <string.h>\nvoid* memcpy(void *dest, const void *src, size_t n) {\nreturn memmove(dest, src, n);\n}\nint clock_gettime(clockid_t clk_id, struct timespec *tp) {\nreturn clock_gettime(clk_id, tp);\n}" > mylibc.c
gcc -s -shared -o mylibc.so -fPIC -fno-builtin mylibc.c
need不足している依存関係を持つマシン(または標準ライブラリの類似バージョン(たとえば、クラスター内)を持つマシン)でそのステップを実行します。
C++ 11をサポートするgccが必要なので、おそらくマシンを変更します。すべての依存関係を欠くマシンにはないでしょう(または、最近のgccの分離インストールを使用できます)。以下では、まだ~/my_stubs
にいて、どうにかしてマシン間でホームを共有していると仮定します。そうでなければ、完了時に生成する.soファイルをコピーするだけです。
そのため、libstdc ++で実行できるスタブの1つと、残りの欠落しているものについては、gccソースからコンパイルします(リポジトリのクローン作成に時間がかかる場合があります)。
printf "#include <functional>\nvoid std::__throw_bad_function_call(void) {\nexit(1);\n}" > bad_function.cc
gcc -std=c++11 -s -shared -o bad_function.so -fPIC -fno-builtin bad_function.cc
git clone https://github.com/gcc-mirror/gcc.git
cd gcc
mkdir my_include
mkdir my_include/ext
cp libstdc++-v3/include/ext/aligned_buffer.h my_include/ext
gcc -I$PWD/my_include -std=c++11 -fpermissive -s -shared -o $MYSTUBS/hashtable.so -fPIC -fno-builtin libstdc++-v3/src/c++11/hashtable_c++0x.cc
gcc -std=c++11 -fpermissive -s -shared -o $MYSTUBS/chrono.so -fPIC -fno-builtin libstdc++-v3/src/c++11/chrono.cc
gcc -std=c++11 -fpermissive -s -shared -o $MYSTUBS/random.so -fPIC -fno-builtin libstdc++-v3/src/c++11/random.cc
gcc -std=c++11 -fpermissive -s -shared -o $MYSTUBS/hash_bytes.so -fPIC -fno-builtin ./libstdc++-v3/libsupc++/hash_bytes.cc
以上です!すべての共有ライブラリ(およびローカルのlibstdc ++)をプリロードすることで、テンソルフローpythonスクリプトを実行できるようになりました。
LIBSTDCPP=`ldconfig -p | grep libstdc++.so.6 | grep 64 | cut -d' ' -f4` #For 64bit machines
LD_PRELOAD="$MYSTUBS/mylibc.so:$MYSTUBS/random.so:$MYSTUBS/hash_bytes.so:$MYSTUBS/chrono.so:$MYSTUBS/hashtable.so:$MYSTUBS/bad_function.so:$LIBSTDCPP" python ${TENSORFLOW_DIR}/models/image/mnist/convolutional.py
:)
Theo Trouillonの「弱体化」ソリューションへの注意。 Tensorflow 0.6.0にのみ適用されます。 Tensorflow 0.9.0に適用したい場合は、より扱いにくくなります。私の場合は、GLIBC 2.12 GLIBCXX 3.4.13のCPUモード、Centos 6.7でした。
Tensorflowのインストール:
pip uninstall protobuf
pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl
'weakifying'コードは変更する必要があります:
TENSORFLOW_DIR=`python -c "import imp; print(imp.find_module('tensorflow')[1])"`
for addr in 0x376e34 0x376e94 0x376ef4 0x376f14 0x376f24 0x376f44 0x376f54 ; do printf '\x02' | dd conv=notrunc of=${TENSORFLOW_DIR}/python/_pywrap_tensorflow.so bs=1 seek=$((addr)) ; done
for addr in 0x93aa4 0x93b04 ; do printf '\x02' | dd conv=notrunc of=${TENSORFLOW_DIR}/contrib/layers/python/ops/_bucketization_op.so bs=1 seek=$((addr)) ; done
for addr in 0x95bec 0x95c4c ; do printf '\x02' | dd conv=notrunc of=${TENSORFLOW_DIR}/contrib/layers/python/ops/_sparse_feature_cross_op.so bs=1 seek=$((addr)) ; done
for addr in 0x9ffec 0x9fffc 0xa005c ; do printf '\x02' | dd conv=notrunc of=${TENSORFLOW_DIR}/contrib/metrics/python/ops/_set_ops.so bs=1 seek=$((addr)) ; done
for addr in 0x96aa4 0x96b04 0x96b24; do printf '\x02' | dd conv=notrunc of=${TENSORFLOW_DIR}/contrib/linear_optimizer/python/ops/_sdca_ops.so bs=1 seek=$((addr)) ; done
また、新しいマシンでコードを生成するスタブに次のコードを追加する必要があります。
mkdir my_include/bits
cp libstdc++-v3/include/bits/shared_ptr_atomic.h my_include/bits/
cp libstdc++-v3/include/std/memory my_include/
gcc -I$PWD/my_include -std=c++11 -fpermissive -s -shared -o ${MYSTUBS}/shared_ptr.so -fPIC -fno-builtin ./libstdc++-v3/src/c++11/shared_ptr.cc
gcc -I$PWD/my_include -std=c++11 -fpermissive -s -shared -o ${MYSTUBS}/list.so -fPIC -fno-builtin ./libstdc++-v3/src/c++98/list.cc
echo "
#include <unistd.h>
#include <stdlib.h>
char * secure_getenv (const char *name) {
if ((getuid () == geteuid ()) && (getgid () == getegid ())) return getenv (name); else return NULL;
}" > getenv.cc
gcc -I$PWD/my_include -std=c++11 -fpermissive -s -shared -o ${MYSTUBS}/getenv.so -fPIC -fno-builtin getenv.cc
もちろん、最終的な実行中のコードを変更して、追加のスタブを含める必要があります。
LD_PRELOAD="$MYSTUBS/list.so:$MYSTUBS/mylibc.so:$MYSTUBS/shared_ptr.so:$MYSTUBS/getenv.so:$MYSTUBS/random.so:$MYSTUBS/hash_bytes.so:$MYSTUBS/chrono.so:$MYSTUBS/hashtable.so:$MYSTUBS/bad_function.so:$LIBSTDCPP" python ${TENSORFLOW_DIR}/models/image/mnist/convolutional.py
@ThéoTの回答にあるリンクは機能しなくなったため、最終的に機能するものを見つけるためにいくつかの代替手段を試す必要がありました。
mkdir ~/my_libc_env
cd ~/my_libc_env
wget http://launchpadlibrarian.net/137699828/libc6_2.17-0ubuntu5_AMD64.deb
wget http://launchpadlibrarian.net/137699829/libc6-dev_2.17-0ubuntu5_AMD64.deb
wget ftp://ftp.icm.edu.pl/vol/rzm5/linux-slc/centos/7.0.1406/cr/x86_64/Packages/libstdc++-4.8.3-9.el7.x86_64.rpm
ar p libc6_2.17-0ubuntu5_AMD64.deb data.tar.gz | tar zx
ar p libc6-dev_2.17-0ubuntu5_AMD64.deb data.tar.gz | tar zx
rpm2cpio libstdc++-4.8.3-9.el7.x86_64.rpm| cpio -idmv
テンソルフローでpythonコードを実行します
LD_LIBRARY_PATH="$HOME/my_libc_env/lib/x86_64-linux-gnu/:$HOME/my_libc_env/usr/lib64/" $HOME/my_libc_env/lib/x86_64-linux-gnu/ld-2.17.so `which python` your_program.py
このエラーは、主にGNU C-Libraryが最新でない場合に発生します。実行しているバージョンを確認するには、シンプルな
$ ldd --version
出力は次のようになります。
ldd (Ubuntu EGLIBC 2.19-0ubuntu6.6) 2.19
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
2.19はGLIBCバージョンです。アップグレードするには、GNU-CライブラリプロジェクトのWebサイトにアクセスして、最新バージョンをダウンロードできます。最新のglibcへのリンクはこちらです: GNU-C library Download この回答を書いている時点で最新の安定版は2.22でした。
Ubuntu 12.04と14.04の両方でtensorflowを実行してみました。 Ubuntu 14.04では、デフォルトでglibc 2.19がインストールされているため、この問題は発生しません。
それが役に立てば幸い。
私のソリューションは、Theo Tのソリューションに似ています。 Xubuntu 12.04(CAELinux 2013)用に微調整されていますが
Sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.6.0-cp27-none-linux_x86_64.whl
Sudo su
# Prompt for password
TENSORFLOW_DIR=`python -c "import imp; print(imp.find_module('tensorflow')[1])"`
for addr in 0xC6A93C 0xC6A99C 0xC6A9EC 0xC6AA0C 0xC6AA1C 0xC6AA3C; do printf '\x02' | dd conv=notrunc of=${TENSORFLOW_DIR}/python/_pywrap_tensorflow.so bs=1 seek=$((addr)) ; done
readelf -V ${TENSORFLOW_DIR}/python/_pywrap_tensorflow.so
exit
mkdir ~/.my_stubs
cd ~/.my_stubs
MYSTUBS=~/.my_stubs
printf "#include <time.h>\n#include <string.h>\nvoid* memcpy(void *dest, const void *src, size_t n) {\nreturn memmove(dest, src, n);\n}\nint clock_gettime(clockid_t clk_id, struct timespec *tp) {\nreturn clock_gettime(clk_id, tp);\n}" > mylibc.c
gcc -s -shared -o mylibc.so -fPIC -fno-builtin mylibc.c
printf "#include <functional>\nvoid std::__throw_bad_function_call(void) {\nexit(1);\n}" > bad_function.cc
gcc -std=c++11 -s -shared -o bad_function.so -fPIC -fno-builtin bad_function.cc
git clone https://github.com/gcc-mirror/gcc.git
cd gcc
mkdir my_include
mkdir my_include/ext
cp libstdc++-v3/include/ext/aligned_buffer.h my_include/ext
gcc -I$PWD/my_include -std=c++11 -fpermissive -s -shared -o $MYSTUBS/hashtable.so -fPIC -fno-builtin libstdc++-v3/src/c++11/hashtable_c++0x.cc
gcc -std=c++11 -fpermissive -s -shared -o $MYSTUBS/chrono.so -fPIC -fno-builtin libstdc++-v3/src/c++11/chrono.cc
gcc -std=c++11 -fpermissive -s -shared -o $MYSTUBS/random.so -fPIC -fno-builtin libstdc++-v3/src/c++11/random.cc
gcc -std=c++11 -fpermissive -s -shared -o $MYSTUBS/hash_bytes.so -fPIC -fno-builtin ./libstdc++-v3/libsupc++/hash_bytes.cc
次の2つの手順は、tensorflow/models/image/mnistディレクトリにあるconvolution.pyスクリプトを実行します。
LIBSTDCPP=`ldconfig -p | grep libstdc++.so.6 | grep 64 | cut -d' ' -f4` #For 64bit machines
LD_PRELOAD="$MYSTUBS/mylibc.so:$MYSTUBS/random.so:$MYSTUBS/hash_bytes.so:$MYSTUBS/chrono.so:$MYSTUBS/hashtable.so:$MYSTUBS/bad_function.so:$LIBSTDCPP" python ${TENSORFLOW_DIR}/models/image/mnist/convolutional.py
pythonをこれらの依存関係を減らして常にロードしたい場合は、以下の手順でこれを.bashrcファイルに追加するだけです:
echo "LIBSTDCPP=`ldconfig -p | grep libstdc++.so.6 | grep 64 | cut -d' ' -f4`" >> ~/.bashrc
echo alias python="'"LD_PRELOAD='"''$'MYSTUBS/mylibc.so:'$'MYSTUBS/random.so:'$'MYSTUBS/hash_bytes.so:'$'MYSTUBS/chrono.so:'$'MYSTUBS/hashtable.so:'$'MYSTUBS/bad_function.so:'$'LIBSTDCPP'"' python"'" >> ~/.bashrc
また、ipythonがある場合:
echo alias ipython="'"LD_PRELOAD='"''$'MYSTUBS/mylibc.so:'$'MYSTUBS/random.so:'$'MYSTUBS/hash_bytes.so:'$'MYSTUBS/chrono.so:'$'MYSTUBS/hashtable.so:'$'MYSTUBS/bad_function.so:'$'LIBSTDCPP'"' ipython"'" >> ~/.bashrc
基本的に、サイトパッケージではなくdist_packagesでpythonインストールが行われるように更新しました。また、gccのネイティブgitページの代わりに gcc-mirror からクローンを作成します。残りはすべて同じです。
最後のいくつかの手順により、pythonまたはipythonを実行するたびに、依存関係が軽減されてロードされるようになります。
https://stackoverflow.com/a/34897674/5929065 ソリューションを試しましたが、完全に機能しました。しかし、libstdc ++-4.8.2-7ダウンロードリンクにはアクセスできなくなりました。このページから新しいリンクを選択してください: http://rpm.pbone.net/index.php3/stat/4/idpl /31981489/dir/centos_7/com/libstdc++-4.8.5-4.el7.x86_64.rpm.html
私のために、私はこれを使用します:
私は同じ問題を抱えていました 次の解決策が見つかりました :
conda install tensorflow
Glibc 2.11.3(ldd --version
による)を搭載したSUSE Linux Enterprise Server 11を実行している古いHPC Linuxシステムにnumba
をインストールしようとすると、同様の問題が発生しました。スーパーユーザーのアクセス権がなく、通常のcondaインストール(チャネルdefaults
、conda-forge
、またはnumba
のいずれか)はOSError: /lib64/libpthread.so.0: version
GLIBC_2.12not found (required by ...envs/test1-py37/lib/python3.7/site-packages/llvmlite/binding/libllvmlite.so
で失敗します。次の手順でnumba
をインストールできました。
glibc
環境からnlsec
をインストールしますpip
を使用して、numba
とllvmlite
をインストールし、新しくインストールされたglibc
に対してビルドします。副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example:
conda create -n test -c nlesc glibc
conda activate test
pip install numba
次に、numbaのインポートが機能します。ただし、後続のconda install
はllvmlite
と互換性のないバージョンにnumba
を「アップグレード」しないか、古い問題が返されることに注意する必要があります。この効果のために 固定する のいずれかまたは両方が必要な場合があります。ビルドとバージョンを固定する必要があります。次を含むファイルpinned
を作成しました。
llvmlite==0.27.0-pypi
numba==0.42.0-pypi
それをconda環境内のテキストファイルconda-meta/pinned
に配置しました。
Pythonでtensorflowをインポートすると、「バージョン `GLIBC_2.14 'が見つかりません」と表示されます。 virtualenvを使用してCentos6.6のpython3.5でtensorflowをインポートできました:
mkdir ~/tensorflow
cd ~/tensorflow
virtualenv --system-site-packages -p python3.5 ~/tensorflow
source bin/activate
wget http://launchpadlibrarian.net/137699828/libc6_2.17-0ubuntu5_AMD64.deb
wget http://launchpadlibrarian.net/137699829/libc6-dev_2.17-0ubuntu5_AMD64.deb
wget ftp://195.220.108.108/linux/mageia/distrib/4/x86_64/media/core/updates/libstdc++6-4.8.2-3.2.mga4.x86_64.rpm
wget https://rpmfind.net/linux/centos/7.4.1708/updates/x86_64/Packages/glibc-2.17-196.el7_4.2.i686.rpm
ar p libc6_2.17-0ubuntu5_AMD64.deb data.tar.gz | tar zx
ar p libc6-dev_2.17-0ubuntu5_AMD64.deb data.tar.gz | tar zx
rpm2cpio libstdc++6-4.8.2-3.2.mga4.x86_64.rpm | cpio -idmv
rpm2cpio glibc-2.17-196.el7_4.2.i686.rpm | cpio -idmv
pip3.5 install --upgrade tensorflow
export PYTHONPATH="$HOME/tensorflow/lib/python3.5/site-packages/"
alias tfpython='LD_LIBRARY_PATH="$HOME/tensorflow/lib/x86_64-linux-gnu/:$HOME/tensorflow/usr/lib64/" $HOME/tensorflow/lib/x86_64-linux-gnu/ld-2.17.so /usr/local/bin/python3.5'
tfpython
上記の回答は問題ありませんが、それらを実行した後でもいくつかの問題に直面しました。私はrhelの@Theo回答のように続き、いくつかのエラーをスローしたLD_LIBRARY_PATHをエクスポートしようとしました。
mkdir libstdc
cd libstdc
rpm2cpio ../libstdc++-4.8.3-9.el7.x86_64.rpm| cpio -idmv
LD_LIBRARY_PATH="$HOME/my_libc_env/lib/x86_64-linux-gnu/:$HOME/my_libc_env/lib64/" LD_PRELOAD="$HOME/my_libc_env/libstdc/usr/lib64/libstdc++.so.6.0.19" $HOME/my_libc_env/lib/x86_64-linux-gnu/ld-2.17.so `which python`
pythonの実行中は常にこれを行う必要があるため、これらの変数をロードしてpythonインタープリターを呼び出すスクリプトを作成します
vim tmp.sh
LD_LIBRARY_PATH="$HOME/my_libc_env/lib/x86_64-linux-gnu/:$HOME/my_libc_env/lib64/" LD_PRELOAD="$HOME/my_libc_env/libstdc/usr/lib64/libstdc++.so.6.0.19" $HOME/my_libc_env/lib/x86_64-linux-gnu/ld-2.17.so `which python`
注意:プラットフォームごとにdebパッケージをダウンロードする必要があります。
x86:
https://launchpad.net/ubuntu/raring/i386/libc6/2.17-0ubuntu5.1
wget http://launchpadlibrarian.net/151932048/libc6_2.17-0ubuntu5.1_i386.deb
Sudo dpkg -i libc6_2.17-0ubuntu5.1_i386.deb
x64:
https://launchpad.net/ubuntu/raring/AMD64/libc6/2.17-0ubuntu5.1
wget http://launchpadlibrarian.net/151925896/libc6_2.17-0ubuntu5.1_AMD64.deb
Sudo dpkg -i libc6_2.17-0ubuntu5.1_AMD64.deb
12.04 Ubuntu x64でテストします。