Estou tentando instalar este software chamado Skedler. A documentação menciona dependências da biblioteca GLIBCXX, mas eles não podiam se dar ao trabalho de fornecer instruções de instalação.
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
Executar o comando grep
fornece um no such file found
no Ubuntu 18.04. Eu também tentei sudo apt-get install libstdc++
e vários outros comandos, mas nada parece instalar as bibliotecas necessárias.
Resposta
O caminho sugerido para verificar não é preciso para o Debian / Ubuntu moderno. O comando provavelmente deve ser:
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
E este segmento parece uma parte da ldd
saída do comando:
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
O fato de não haver texto not found
após a seta em qualquer uma dessas três linhas indica que o binário que foi testado pelo programa de instalação e encontrou tudo o que precisava na biblioteca. Portanto, parece que essa dependência já é tratada pelo seu sistema.
A propósito, a saída do Skedler parece um pouco confusa em relação ao nome da biblioteca. O nome mais visível para o usuário deve ser libstdc++
.
No Debian 9, existem duas versões de libstdc++
disponíveis atualmente: a versão atual é empacotada como libstdc++6
, e uma versão legada que costumava ser popular com vários softwares proprietários é empacotada como libstdc++5
. Eu acho que o Ubuntu pode ter variantes com nomes semelhantes disponíveis.
O nome GLIBCXX
é o prefixo nos nomes dos símbolos de versão dentro da biblioteca. Normalmente, estaria mais relacionado ao nome real da biblioteca (sem o prefixo “lib”), mas, neste caso, os sinais de mais são um problema e, portanto, são substituídos por caracteres X.
(O antigo libstdc++5
usava um ABI diferente que é incompatível com o atual, e seus símbolos de versão usavam um prefixo GLIBCPP
em seu lugar.)