Ik probeer deze software genaamd Skedler te installeren. Hun documentatie vermeldt GLIBCXX-bibliotheekafhankelijkheden, maar ze konden niet “de moeite nemen om installatie-instructies te geven.
GLIBCXX libraries Skedler has dependency on libstdc++ library. Following are the GLIBCXX versions the code depends on libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 To check the versions on your server. Please run the command CentOS strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX Debian/Ubuntu strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX If the version is not available, update the GCC compiler
Het uitvoeren van het grep
commando geeft een no such file found
op Ubuntu 18.04. Ik heb ook sudo apt-get install libstdc++
en verschillende andere opdrachten geprobeerd, maar niets lijkt de vereiste bibliotheken te installeren.
Answer
De voorgestelde padnaam om te controleren is niet nauwkeurig voor moderne Debian / Ubuntu. Het commando zou waarschijnlijk moeten zijn:
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
En dit segment ziet eruit als een onderdeel van ldd
commando-uitvoer:
libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
Het feit dat er geen tekst not found
na de pijl op een van deze drie regels staat, geeft aan dat het binaire bestand dat werd getest door het installatieprogramma en vond met succes alles wat het nodig had in de bibliotheek. Het lijkt er dus op dat deze afhankelijkheid al door je systeem wordt afgehandeld.
Overigens ziet de Skedler-uitvoer er wat verwarrend uit wat betreft de naam van de bibliotheek. De meest voor de gebruiker zichtbare naam zou eigenlijk libstdc++
moeten zijn.
In Debian 9 zijn er momenteel twee versies van libstdc++
beschikbaar: de huidige versie is verpakt als libstdc++6
, en een oudere versie die vroeger populair was bij verschillende propriëtaire software, is verpakt als libstdc++5
. Ik denk dat Ubuntu mogelijk gelijknamige varianten beschikbaar heeft.
De naam GLIBCXX
is het voorvoegsel voor de namen van de versiesymbolen in de bibliotheek. Gewoonlijk zou het nauwer verwant zijn aan de werkelijke naam van de bibliotheek (zonder het voorvoegsel “lib”), maar in dit geval zijn de plustekens een probleem, en daarom worden ze vervangen door X-tekens.
(De oude libstdc++5
gebruikte een andere ABI die niet compatibel is met de huidige, en de versiesymbolen gebruikten in plaats daarvan een GLIBCPP
voorvoegsel.)