Como atualizar corretamente o glibc?

10

O firmware do meu NAS vem com uma versão bastante antiga do glibc, ou seja, 2.5. Para lidar com alguns binários pré-compilados vinculados * a glibc2.15, eu gostaria de atualizá-lo. Com alguns testes simples em um chrootambiente, aprendi que adicionar o mais novo libc-2.15.soe atualizar o link simbólico libc.so.6produzirá um sistema inutilizável; provavelmente devido ao fato de libc-2.15.soestar vinculado ld-linux.so.3, o que naturalmente também exigiria a versão 2.15 em vez da versão 2.5. Mas antes que eu caia em muita tentativa e erro,

qual é o procedimento correto para atualizar manualmente o glibc?


* apesar de estarem vinculados "estaticamente", eles ainda se vinculam dinamicamente à glibc ...

Tobias Kienzler
fonte
"Para lidar com alguns binários pré-compilados (apesar de vinculados" estaticamente ", eles ainda se vinculam dinamicamente à glibc ...) vinculados à glibc 2.15." Retirando os colchetes, isso reduz a "Para lidar com alguns binários pré-compilados vinculados à glibc 2.15.". Não tenho certeza do que isso significa.
Faheem Mitha
@FaheemMitha Obrigado por apontar isso, eu nunca percebi que eu esqueci de terminar essa frase - a esperança faz mais sentido agora
Tobias KIENZLER
Sim, ele está melhor agora, embora ter esse suporte incorporado não ajude com clareza. Presumo que reconstruir o firmware com uma nova libc não é uma opção?
Fahem Mitha
@FaheemMitha Debracketed agora. Não, infelizmente o firmware contém alguns componentes proprietários: /
Tobias Kienzler 5/14
Cidade Nitpick. Você está marcando seu texto com um *, mas está usando um 1 na sua "nota de rodapé". Sim, isso é (parte do porquê) sofrware proprietário é uma merda. Procure firmware de terceiros gratuito, talvez? Ou desenvolva o seu próprio. Mais fácil dizer do que fazer, concedido.
FaHememit Mitha #

Respostas:

7

A atualização da biblioteca padrão é arriscada, pois alguns programas e bibliotecas podem depender da versão atual.

Minha recomendação, se você precisar executar programas mais recentes, é instalar uma distribuição completa com chroot . Isso requer mais espaço em disco, mas é muito mais simples e menos arriscado do que tentar atualizar a libc. O Debian fornece uma ferramenta para facilitar as instalações em um chroot: debootstrap . Consulte Instalando dois glibc ao lado no debian / ubuntu (uma situação muito semelhante) para obter mais explicações e como executo programas de 32 bits em um Debian / Ubuntu de 64 bits? para obter instruções detalhadas em uma situação um pouco diferente.

Gilles 'SO- parar de ser mau'
fonte
2
Eu temia isso ... Na verdade, atualmente estou usando uma instalação chroot do Gentoo. Para compilar binários fora do chroot, provavelmente seria mais fácil fazer o downgrade do glibc do Gentoo ou usar uma versão suficientemente antiga ... Então, novamente duvido muito (ou pelo menos espero que não) esta é a resposta final.
Tobias KIENZLER
O que você quer dizer com atualizar o glibc "é arriscado"? O Glibc é compatível com versões anteriores, então geralmente deve funcionar ou eu não entendi algo aqui?
Nils
3
@ Nils O que você está perdendo é a diferença entre deveria e faz . Às vezes, os programas dependem de comportamento não documentado que muda entre as versões.
Gilles 'SO- stop be evil'