Cosa può andare storto con un aggiornamento GLIBC?


9

Di recente ho installato un software di cui il mio gruppo ha bisogno per un progetto di ricerca a partire dal prossimo settembre. Si scopre che il software ha un bug di crash noto quando usato con glibc 2.12.1. Il mio capo ha chiesto se possiamo aggiornare glibc sul server che dovrebbe eseguirlo. Indovina il mio silenzio scettico ...

A un certo punto, mi è venuto in mente che scherzare con glibc era un'idea altrettanto buona di come scherzare con un puma affamato; tuttavia, non sono stato in grado di determinare l'origine di questa convinzione. Quindi, se vado avanti con questo:

  1. Sto facendo qualcosa di palesemente stupido (ad esempio, non risolverò il mio problema, creerò un mattone sul mio server o avvierò un'apocalisse di zombi)?
  2. Cosa può andare storto?
  3. Cosa potrebbe andare storto?
  4. Come evitare le risposte a 2 e 3?

3
Innanzitutto, controlla se la tua distribuzione ha aggiornamenti glibc che risolvono il bug. Un particolare glibc di una distribuzione potrebbe contenere molti backport / correzioni di bug nel suo glibc rispetto al glibc ufficiale, ma la versione della distribuzione è sempre la stessa.
nn.

1
Finché si dispone di un supporto rimovibile di avvio (chiavetta USB, CD, DVD) la macchina non è veramente in muratura. Il salvataggio sarà possibile reinstallando glibc da lì. Per evitare qualsiasi pericolo, potresti provare a compilare un nuovo glibc come utente non root con --prefix=$HOMEquindi puntare il tuo LD_LIBRARY_PATHverso di esso e vedere se funziona. Come utente non root non puoi rovinare l'intero sistema, non importa quanto male ti rovini. Se funziona, modificalo --prefix=/usr/local/bleeding-edge-glibce documentalo LD_LIBRARY_PATH=/usr/local/bleeding-edge-glibc/libcome requisito per il progetto di ricerca
Alan Curry,

1
Non riesci ad aggiornare la distribuzione? E dovresti dire a che tipo di glibcbug hai paura e che tipo di software stai usando. È possibile patchare il software (supponendo che abbia il suo codice sorgente) o configurare altrimenti il ​​proprio sistema per aggirarlo.

Evitare di utilizzare software server precedente per nuovi progetti ogni volta che è possibile.
Michael Hampton,

Risposte:


5

Spesso è possibile compilare una libc più fresca e fare in modo che un software utilizzi una libreria diversa rispetto a tutti gli altri.

Il più grande punto critico tra le versioni libc è l'archiviazione locale thread, IIRC. Se stai superando questo traguardo, tutte le scommesse sono disattivate.

Detto questo, ti consiglio vivamente di aggiornare semplicemente la distribuzione a qualcosa di moderno. Fare aggiornamenti frammentari può portare al tipo di dolore che ti fa inseguire la coda per mesi.


2

È possibile fare riferimento alla tabella di compatibilità per determinare le versioni compatibili binarie.

Di solito non è un problema aggiornare glibc a una versione più recente, ma è necessario crearlo con gli stessi flag di configurazione utilizzati nella distribuzione (vedere il file delle specifiche nel pacchetto SRPM appropriato).

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.