Comment mettre à jour correctement la glibc?

10

Le firmware de mon NAS est livré avec une version assez ancienne de glibc, à savoir 2.5. Afin de faire face à certains binaires précompilés liés * à glibc2.15, je voudrais le mettre à jour. De quelques tests simples dans un chrootenvironnement que j'ai appris simplement en ajoutant le plus récent libc-2.15.soet en mettant à jour le lien symbolique libc.so.6produira un système inutilisable; probablement en raison d' libc-2.15.soêtre lié à ld-linux.so.3son tour, ce qui nécessiterait bien sûr également la version 2.15 au lieu de la version 2.5. Mais avant de plonger dans trop d'essais et d'erreurs,

quelle est la bonne procédure pour mettre à niveau manuellement la glibc?


* bien qu'ils soient liés "statiquement", ils sont toujours liés dynamiquement à la glibc ...

Tobias Kienzler
la source
"Afin de faire face à certains binaires précompilés (bien qu'ils soient liés" statiquement ", ils sont toujours liés dynamiquement à glibc ...) liés à glibc 2.15." En supprimant les crochets, cela se réduit à "Afin de faire face à certains binaires précompilés liés à la glibc 2.15.". Je ne sais pas ce que cela signifie.
Faheem Mitha
@FaheemMitha Merci d'avoir souligné cela, je n'ai jamais réalisé que j'avais oublié de terminer cette phrase - j'espère que cela a plus de sens maintenant
Tobias Kienzler
Oui, il se lit mieux maintenant, bien qu'avoir ce support intégré n'aide pas à la clarté. Je suppose que la reconstruction du firmware avec une nouvelle libc n'est pas une option?
Faheem Mitha
@FaheemMitha Debracketed maintenant. Non, le firmware contient malheureusement certains composants propriétaires: /
Tobias Kienzler
Nitpick city. Vous marquez votre texte avec un *, mais vous utilisez un 1 dans votre "note de bas de page". Oui, c'est (en partie pourquoi) le logiciel propriétaire est nul. Recherchez peut-être un firmware tiers gratuit? Ou développez le vôtre. Plus facile à dire qu'à faire, accordé.
Faheem Mitha

Réponses:

7

La mise à niveau de la bibliothèque standard est risquée, car certains programmes et bibliothèques peuvent dépendre de la version actuelle.

Ma recommandation si vous avez besoin d'exécuter de nouveaux programmes est d'installer une distribution chrootée complète . Cela nécessite plus d'espace disque, mais est beaucoup plus simple et moins risqué que d'essayer de mettre à jour libc. Debian fournit un outil pour faciliter les installations dans un chroot: debootstrap . Voir Installer deux glibc à côté dans Debian / Ubuntu (une situation très similaire) pour plus d'explications et Comment exécuter des programmes 32 bits sur un Debian / Ubuntu 64 bits? pour un tutoriel complet dans une situation légèrement différente.

Gilles 'SO- arrête d'être méchant'
la source
2
Je craignais autant ... En fait , je suis actuellement en utilisant une installation Gentoo chroot. Afin de compiler des binaires hors chroot, il serait probablement plus facile de rétrograder ensuite la glibc de Gentoo, ou d'utiliser une version suffisamment ancienne ... Là encore, je doute fortement (ou du moins j'espère que non) que c'est la réponse finale.
Tobias Kienzler
Que voulez-vous dire en disant que la mise à niveau de la glibc "est risquée"? Glibc est rétrocompatible, donc cela devrait généralement fonctionner ou n'ai-je pas compris quelque chose ici?
Nils
3
@Nils Ce qui vous manque, c'est la différence entre devrait et fait . Les programmes dépendent parfois d'un comportement non documenté qui change entre les versions.
Gilles 'SO- arrête d'être méchant'