O que pode dar errado com uma atualização GLIBC?

9

Recentemente, instalei um software que meu grupo precisa para um projeto de pesquisa a partir de setembro próximo. Acontece que o software possui um bug de falha conhecido quando usado com o glibc 2.12.1. Meu chefe perguntou se podemos atualizar o glibc no servidor que deveria executá-lo. Cue meu silêncio cético ....

Em algum momento, percebi que mexer com glibc era uma idéia tão boa quanto mexer com um puma faminto; no entanto, não consegui determinar a fonte dessa crença. Então, se eu continuar com isso:

  1. Estou fazendo algo flagrantemente estúpido (por exemplo, não solucionarei meu problema, bloqueará meu servidor ou iniciaremos um apocalipse zumbi)?
  2. O que pode dar errado?
  3. O que provavelmente dará errado?
  4. Como evito as respostas para 2 e 3?
Sevenless
fonte
3
Primeiro, verifique se sua distro possui atualizações glibc que corrigem o bug. Um glibc específico de uma distribuição pode conter muitas backports / correções de erros em sua glibc em comparação com a glibc oficial, mas a versão da distribuição ainda é a mesma.
Nos
1
Contanto que você tenha algum meio removível inicializável (pen drive USB, CD, DVD), a máquina não será verdadeiramente emparedada. O resgate será possível reinstalando o glibc a partir daí. Para evitar qualquer perigo, você pode tentar compilar um novo glibc como um usuário não root --prefix=$HOMEe apontá LD_LIBRARY_PATH-lo para ele e ver se funciona. Como usuário não root, você não pode estragar todo o sistema, não importa o quanto você estrague tudo. Se isso não funciona, alterá-lo para --prefix=/usr/local/bleeding-edge-glibce documentar LD_LIBRARY_PATH=/usr/local/bleeding-edge-glibc/libcomo um requisito para o projeto de pesquisa
Alan Curry
1
Você não pode atualizar a distribuição? E você deve dizer qual é o glibcbug que você tem medo e que tipo de software você está usando. Você pode corrigir o seu software (supondo que tenha o código fonte) ou configurar o sistema para contorná-lo.
Evite usar o software de servidor antigo para novos projetos sempre que possível.
Michael Hampton

Respostas:

5

Geralmente, é possível compilar uma libc atualizada e ter um software usando uma biblioteca diferente para todos os outros.

O maior ponto problemático entre as versões libc é o armazenamento local de threads, IIRC. Se você está ultrapassando esse marco, todas as apostas estão desativadas.

Dito tudo isso - eu recomendo fortemente que você simplesmente atualize a distribuição para algo moderno. Fazer atualizações graduais provavelmente levará ao tipo de dor que faz você perseguir sua cauda por meses.

Tom Newton
fonte
2

Você pode consultar a tabela de compatibilidade para determinar as versões compatíveis com binários.

Normalmente, não é um problema atualizar o glibc para uma versão mais recente, mas você deve construí-lo com os mesmos sinalizadores de configuração usados ​​na sua distribuição (consulte o arquivo de especificação no pacote SRPM apropriado).

insira a descrição da imagem aqui

linuxbuild
fonte