web-dev-qa-db-ja.com

"/lib/x86_64-linux-gnu/libc.so.6:バージョン` GLIBC_2.14 'が見つかりません "を修正する方法?

このエラーを修正する方法:

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found

プラットフォーム:

Linux alef 3.2.0-4-AMD64 #1 SMP Debian 3.2.35-2 x86_64 GNU/Linux
28
xliiv

つまり、プログラムはglibcバージョン2.14に対してコンパイルされたものであり、そのバージョンを実行する必要がありますが、システムには古いバージョンがインストールされています。システムにあるglibcのバージョンに対してプログラムを再コンパイルするか、または新しいバージョンのglibc(Debianでは "libc6"パッケージ)をインストールする必要があります。

Debianは "実験的な"リポジトリにglibc 2.16を持っていますが、プログラムを再コンパイルすることはより安全なオプションです。 Glibcはすべてが依存するライブラリなので、アップグレードすると広範囲に影響する可能性があります。 Debianのglibc 2.16パッケージにはおそらく何も問題はありませんが、それが実験的なリポジトリにあるという事実はそれほど多くのテストを受けていないことを意味します。

29
Wyzard

私は自分の解決策 をここ に投稿しました。参考のために再投稿してください。

私の状況では、Debian Wheezy(デフォルトではglibc 2.13がインストールされています)でGLIBC_2.14を使って(Ubuntu 12.04 LTSでコンパイルされた)アプリケーションを実行しようとするとエラーが発生します。

私はそれを実行するのにトリッキーな方法を使い、そして正しい結果を得ます:

  1. Ubuntu 12.04 LTSから libc6 および libc6-dev をダウンロード

  2. Dpkgコマンドを実行してそれらをディレクトリ(たとえば/ home/user/fakeroot /)にインストールします。

    $ dpkg -x libc6-dev_2.15-0ubuntu10.6_AMD64.deb /home/user/fakeroot/
    $ dpkg -x libc6_2.15-0ubuntu10.6_AMD64.deb /home/user/fakeroot/
    
  3. LD_LIBRARY_PATHを指定してコマンドを実行します。

    $ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND
    
  4. 私のアプリケーションはGLIBC_2.14のmemcpy()だけを使っていて、それは動きます。

他のアプリケーションでもうまくいくかどうかわかりません。参考にしてください。

20
Bin S
apt-get update && apt-get -reinstall install Vesta-nginx Vesta-php

それはOSを壊すことなくそれを修正するだけです。