Jak naprawić błąd „/lib/x86_64-linux-gnu/libc.so.6: nie znaleziono wersji„ GLIBC_2.14 ”?

29

Jak naprawić ten błąd:

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

Platforma:

Linux alef 3.2.0-4-amd64 #1 SMP Debian 3.2.35-2 x86_64 GNU/Linux
Xliiv
źródło

Odpowiedzi:

30

Oznacza to, że program został skompilowany z wersją 2.14 glibc i wymaga uruchomienia tej wersji, ale system ma zainstalowaną starszą wersję. Musisz albo ponownie skompilować program w stosunku do wersji glibc, która jest w twoim systemie, albo zainstalować nowszą wersję glibc (pakiet „libc6” w Debianie).

Debian ma glibc 2.16 w repozytorium „eksperymentalnym”, ale rekompilacja programu jest bezpieczniejszą opcją. Glibc jest biblioteką, od której wszystko zależy, więc jej aktualizacja może mieć daleko idące konsekwencje. Chociaż prawdopodobnie nie ma nic złego w pakiecie glibc 2.16 Debiana, fakt, że znajduje się on w repozytorium eksperymentalnym, oznacza, że ​​nie otrzymał tyle testów.

Wyzard - Stop Harming Monica--
źródło
4
To taka fajna odpowiedź i zrozumiałem każde zdanie :). Jak go ponownie skompilować (aplikacja jest deweloperem tidesdk) na moim komputerze, wszelkie odniesienia? Jednak przyjmuję tę odpowiedź, miło.
xliiv
aktualizacja do debian jessie pomogła tutaj.
cweiske
5
Czy to oznacza, że ​​potrzebujesz dokładnie wersji 2.14 glibc lub przynajmniej wersji 2.14?
Philippe
20

Opublikowałem tutaj swoje rozwiązanie , opublikuj je w celach informacyjnych.

W mojej sytuacji błąd pojawia się, gdy próbuję uruchomić aplikację (skompilowaną na Ubuntu 12.04 LTS) przy użyciu GLIBC_2.14 na Debian Wheezy (która domyślnie instaluje glibc 2.13).

Używam trudnego sposobu, aby go uruchomić i uzyskać poprawny wynik:

  1. Pobierz libc6 i libc6-dev z Ubuntu 12.04 LTS

  2. Uruchom komendę dpkg, aby zainstalować je w katalogu (na przykład / 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. Uruchom komendę z określoną LD_LIBRARY_PATH:

    $ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND
    
  4. Moja aplikacja używa tylko memcpy () z GLIBC_2.14 i działa.

Nie wiem, czy zadziała z powodzeniem w przypadku innych aplikacji. Życzę pomocy.

Bin S
źródło
0
apt-get update && apt-get -reinstall install vesta-nginx vesta-php

To powinno po prostu to naprawić bez uszkodzenia systemu operacyjnego.  

Ajibola L'Don Jibson Olayanju
źródło
2
Czemu? Czy mógłbyś wyjaśnić? W jaki sposób vesta(panel kontrolny hostingu) jest powiązany z pytaniem?
iX3,