Qu'est-ce qui peut mal tourner avec une mise à niveau GLIBC?

9

J'ai récemment installé un logiciel dont mon groupe a besoin pour un projet de recherche débutant en septembre prochain. Il s'avère que le logiciel a un bug de plantage connu lorsqu'il est utilisé avec la glibc 2.12.1. Mon patron m'a demandé si nous pouvions mettre à niveau la glibc sur le serveur censé l'exécuter. Cue mon silence sceptique ....

À un moment donné, je me suis rendu compte que jouer avec la glibc était à peu près une aussi bonne idée que de jouer avec un puma affamé; cependant, je n'ai pas pu déterminer la source de cette croyance. Donc, si je continue avec ceci:

  1. Suis-je en train de faire quelque chose de stupidement flagrant (par exemple, je ne résoudrai pas mon problème, je brique mon serveur ou je déclenche une apocalypse zombie)?
  2. Qu'est-ce qui peut mal tourner?
  3. Qu'est-ce qui risque de mal tourner?
  4. Comment éviter les réponses aux points 2 et 3?
Sevenless
la source
3
Tout d'abord, vérifiez si votre distribution a des mises à jour de glibc qui corrigent le bogue. Une glibc particulière d'une distribution peut contenir de nombreux backports / corrections de bogues à sa glibc par rapport à la glibc officielle, mais la version de la distribution est toujours la même.
nos
1
Tant que vous disposez d'un support amovible amorçable (clé USB, CD, DVD), la machine n'est pas vraiment maçonnée. Le sauvetage sera possible en réinstallant la glibc à partir de là. Pour éviter tout danger, vous pouvez essayer de compiler une nouvelle glibc en tant qu'utilisateur non root avec --prefix=$HOMEensuite pointer votre LD_LIBRARY_PATHet voir si cela fonctionne. En tant qu'utilisateur non root, vous ne pouvez pas visser tout le système, peu importe à quel point vous vous trompez. Si cela fonctionne, modifiez-le --prefix=/usr/local/bleeding-edge-glibcet documentez-le LD_LIBRARY_PATH=/usr/local/bleeding-edge-glibc/libcomme exigence pour le projet de recherche
Alan Curry
1
Vous ne pouvez pas mettre à jour la distribution? Et vous devez dire à utiliser quel est le glibcbug dont vous avez peur et quel type de logiciel utilisez-vous. Vous pouvez patcher votre logiciel (en supposant que vous avez son code source), ou configurer autrement votre système, pour le contourner.
Évitez autant que possible d'utiliser l'ancien logiciel serveur pour de nouveaux projets.
Michael Hampton

Réponses:

5

Il est souvent possible de compiler une libc plus récente et de faire en sorte qu'un logiciel utilise une bibliothèque différente de tout le monde.

Le plus gros problème entre les versions de libc est le stockage local des threads, IIRC. Si vous passez ce cap, tous les paris sont annulés.

Cela dit, je vous recommande fortement de simplement mettre à niveau la distribution vers quelque chose de moderne. Faire des améliorations au coup par coup est susceptible d'entraîner le genre de douleur qui vous fait courir après votre queue pendant des mois.

Tom Newton
la source
2

Vous pouvez vous référer au tableau de compatibilité pour déterminer les versions compatibles binaires.

Habituellement, la mise à niveau de la glibc vers une version plus récente n'est pas un problème, mais vous devez la construire avec les mêmes indicateurs de configuration que ceux utilisés dans votre distribution (voir le fichier de spécification dans le package SRPM approprié).

entrez la description de l'image ici

linuxbuild
la source