
Resolvendo erro GLIBC_2.28 no Ubuntu 20.04
O erro relacionado à GLIBC_2.28 ocorre porque essa versão da biblioteca GNU C é exclusiva para versões do Ubuntu mais recentes que a 18, como o Ubuntu 20.04. Por isso, ao tentar rodar algumas ferramentas, especialmente o Truffle, que depende de versões específicas da GLIBC, o sistema pode apresentar erros. A solução recomendada é instalar uma versão do Truffle que seja compatível com a GLIBC_2.27.
Contexto Técnico
A GNU C Library (glibc) é uma biblioteca fundamental do sistema Linux responsável por diversas funções essenciais. O Ubuntu 20.04 vem com a versão 2.31, mas algumas aplicações específicas exigem versões anteriores para garantir compatibilidade, especialmente em ambientes de desenvolvimento blockchain com o Truffle.
Passo a passo para corrigir o erro GLIBC_2.28
Execute os comandos abaixo para remover versões conflitantes do Node.js e npm, instalar o gerenciador de versões Node Version Manager (NVM), configurar o Node.js corretamente e instalar a versão adequada do Truffle:
- Remova o Node.js e o npm instalados globalmente:
sudo apt-get remove nodejs sudo apt-get remove npm
- Instale o NVM (Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash chmod +x ~/.nvm/nvm.sh source ~/.bashrc
- Instale o Node.js versão 17 (compatível):
nvm install 17
- Atualize os pacotes do sistema:
sudo apt update sudo apt list --upgradable sudo apt upgrade -y sudo apt install update-manager-core
- Instale a versão 5.11.5 do Truffle, que é compatível com GLIBC_2.27:
sudo npm install -g truffle@5.11.5
- Obtenha o compilador Solidity na versão 0.5.16, recomendada para projetos com essa dependência:
truffle obtain --solc=0.5.16
Referências
Este tutorial é baseado nas melhores práticas de configuração do ambiente Ethereum em Ubuntu, conforme descrito no artigo do Medium: https://priyalwalpita.medium.com/setting-up-the-go-ethereum-geth-environment-in-ubuntu-linux-67c09706b42
Considerações finais
Seguir esses passos garante a compatibilidade do seu ambiente de desenvolvimento com o Truffle, evitando erros relacionados à GLIBC e permitindo um fluxo de trabalho estável em projetos Ethereum.