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.)

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *