suse quebrado? Não é possível encontrar a glibc

0

Eu queria instalar a nova versão beta do postgres, disponível somente na fonte. No meu servidor não havia gcc instalado, então eu queria instalar o gcc. Depois de executar o yast, o gcc 4.3.3 só poderia ser instalado através do downgrade de toneladas de pacotes. Eu cliquei em todas essas coisas, apertei instalar e então algumas falhas de instalação apareceram. Depois de abortar, não consigo mais entrar no yast.

/bin/bash: /lib64/libc.so.6: version GLIBC_2.11 'não encontrado (requerido por /lib64/libreadline.so.5)'

zypper, rpm também estão quebrados. Eu devo ter terminado completamente o servidor. Existe algum comando de reparo para fazer tudo rodar novamente? Eu estou correndo suse 11.1.

    
por Franz Kafka 13.08.2012 / 17:54

1 resposta

2

Não há comando de reparo. O que aconteceu é que seu downgrade substituiu a versão de glibc de uma versão atual para uma versão mais antiga e todos os outros programas em seu sistema que fazem link com glibc (ou seja, tudo , exceto o pacotes que foram rebaixados primeiro) agora são incapazes de encontrar os símbolos que precisam para ligar e executar.

Você pode reparar este sistema iniciando um sistema de recuperação (LiveSUSE 11.1 Live CD ou colocando o disco rígido em outro computador), baixar manualmente a versão correta de glibc rpm, descompactá-lo e colocar manualmente seus arquivos no sistema quebrado.

Na verdade, você pode fazer isso de praticamente qualquer sistema operacional Linux que possa montar o sistema de arquivos do seu servidor. A principal coisa que você precisa é o comando rpm , mas certifique-se de que a versão de rpm no sistema de recuperação seja nova-ish para suportar o formato de arquivo LZMA, que eu acho que foi implementado quando 11.1 foi lançado . A maneira mais segura de fazer isso é usar o Live CD do OpenSUSE / SUSE 11.1 como sistema de resgate, e não algo estranho e antigo como o Ubuntu 8.04 ou o SUSE 10.

Uma vez que você tenha a glibc funcionando novamente, você pode chroot no sistema quebrado e tentar novamente ou reverter o downgrade, e se você encontrar algum erro, apenas exit do ambiente chroot, faça o download dos pacotes necessários o host e descompacte-os no convidado.

Na verdade, pode ser mais fácil se você inicializar um resgate do OpenSUSE 11.1, copiar apenas todos os arquivos de /usr e /lib64 do sistema de recuperação para o volume raiz quebrado, sobrescrevendo todo o seu núcleo programas com as versões originais (glibc, kernel, Xorg e assim por diante). Mas não sobrescreva /boot ou você perderá seu menu.lst / menu.cfg. E não sobrescreva /etc ou você perderá fstab, o que é importante e provavelmente não está quebrado (mas ele será quebrado se você sobrescrevê-lo com a versão no CD de recuperação).

Observe que isso não é garantido para funcionar. Você provavelmente desejará executar zypper up (como root) no sistema de recuperação ANTES de fazer isso. Isso atualizará todos os arquivos em /usr e /lib64 para as versões mais recentes do repositório de atualizações antes de colocá-los no servidor. Isso fornece a melhor probabilidade de que tudo funcione quando você inicializar no sistema quebrado.

O mais provável é que a resposta à sua pergunta "esteja corrompida?" é provavelmente "sim", mas se você é meticuloso e sabe o que está fazendo, ainda pode consertá-lo. Convencer o banco de dados rpm do sistema quebrado de que tudo está bem pode ser interessante, no entanto.

    
por 13.08.2012 / 18:40