Onde baixar faltando libc.so.6

2

Recentemente, acidentalmente apaguei o arquivo /lib/x86_64-linux-gnu/libc.so.6. Este arquivo é necessário para a maioria dos programas, então meu computador está basicamente quebrado e eu só posso acessar o disco rígido através de um USB ao vivo.

Estou executando o Crunchbang Waldorf de 64 bits, que é baseado no Debian.

Como posso substituir libc.so.6? ( /lib64/ não conter uma cópia.)

Saída de locate libc.so (em USB ao vivo, com disco rígido quebrado montado)

/lib/x86_64-linux-gnu/libc.so.6
/rofs/lib/x86_64-linux-gnu/libc.so.6
/rofs/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libc.so.6

Conteúdo de /etc/apt/sources.list

deb http://mozilla.debian.net/ wheezy-backports iceweasel-release

## CRUNCHBANG
## Compatible with Debian Wheezy, but use at your own risk.
deb http://packages.crunchbang.org/waldorf waldorf main contrib
# deb-src http://packages.crunchbang.org/waldorf waldorf main

## DEBIAN
deb http://http.debian.net/debian wheezy main contrib non-free
# deb-src http://http.debian.org/debian wheezy main contrib non-free

## DEBIAN SECURITY
deb http://security.debian.org/ wheezy/updates main contrib
# deb-src http://security.debian.org/ wheezy/updates main
LonelyWebCrawler
fonte

Respostas:

4

Eu vou assumir que seu pendrive ao vivo tem a mesma distribuição que você está usando, ou pelo menos é baseado no Debian.

Com essas suposições, inicialize seu sistema com seu pendrive ao vivo. Em seguida, consulta qual pacote possui o arquivo /lib/x86_64-linux-gnu/libc.so.6 com comando dpkg -S /lib/x86_64-linux-gnu/libc.so.6 (o arquivo se tornará propriedade do pacote chamado "libc6", mas é um bom exercício de qualquer maneira).

Quando você tiver seu sistema rodando a partir de uma distribuição ao vivo de pendrives, baixe o pacote ou pacotes Site em Crunchbang Waldorf .

Em seguida, monte sua unidade de disco rígido em algum diretório. Por exemplo, vou supor que você estará montando sua partição raiz a partir da sua unidade de disco rígido /mnt.

Então, tudo o que resta a fazer é reinstalar o pacote ou pacotes necessários usando --root /mnt diretiva para dpkg. Dessa forma, os pacotes não vão acabar no seu sistema de arquivos USB live, mas sim no sistema que você já tem no seu disco rígido.

Sami Laine
fonte
Obrigado, vou tentar isso em breve. Mas eu estou querendo saber: não seria também possível inicializar exatamente a mesma distro e simplesmente copiar o arquivo ausente do USB para o disco rígido? Ou isso vai bagunçar a embalagem?
LonelyWebCrawler
2
O mais provável é que funcione, mas no caso de você ter executado algumas atualizações no sistema em seu disco rígido, o arquivo em seu sistema live USB pode não ser idêntico. O que eu sugeri acima não é a única maneira de acertar (outra seria fazer o download da mesma versão do deb-package, descompactá-lo e copiar o arquivo manualmente, mas então você deve usar o dpkg então).
Sami Laine
Por favor ajude, Sami! Não consigo encontrar o pacote libc.so.6 a packages.crunchbang.org .
LonelyWebCrawler
eu acho que é este . Conforme as instruções: faça o download primeiro e depois instale usando o dpkg.
agtoever
1

o libc.so.6 arquivo está presente no libc6 pacote.

Você tem que descobrir a partir de qual repositório libc6 pacote foi instalado em sua máquina. (Verifica /etc/apt/sources.list, etc).

Então baixe-o manualmente (por exemplo, se fosse uma máquina Debian usando os repositórios padrão, você poderia baixá-lo de Aqui ) e, em seguida, instale-o usando as instruções fornecidas pelo @SamiLaine.

That Brazilian Guy
fonte
Desculpe, eu não sou tão bom com os pacotes e não entendo muito bem. O pacote é libc6, mas onde eu o encontro? Eu colei o conteúdo de /etc/apt/sources.list no post.
LonelyWebCrawler
0

Abra um terminal ( Ctrl + Alt + T ) e execute os seguintes comandos:

Para o Ubuntu de 64 bits:

sudo ln -s /lib64/x86_64-linux-gnu/libc.so.6 /lib64/libc.so.6

Para o Ubuntu de 32 bits:

sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6

Jollyfreak
fonte
Boa tentativa. Infelizmente não tenho /lib64/x86_64-linux-gnu/ diretório (eu também não estou usando o Ubuntu).
LonelyWebCrawler
0

Tente isso em um shell de root:

ln -s /lib/x86_64-linux-gnu/libc-2.13.so /lib64/libc.so.6

E se libc-2.13.so não é a versão correta para o seu sistema, use tab-completion no bash para encontrar o caminho certo.

Se isso não funcionar, você poderia seguir com a versão estaticamente vinculada de ldconfig em um shell de raiz:

/sbin/ldconfig

Se a biblioteca de destino para os links libc foi excluída, baixar o pacote debian do Pacote: libc6 página, descompacte-o usando dpkg-deb -X ( página man ) e copie libc-2.13.so para /lib/x86_64-linux-gnu. Em seguida, execute ldconfig para garantir que todos os links estejam corretos.

harrymc
fonte
eu deletei libc.so.6 através de um link semelhante, então me desculpe se eu sou um pouco cético. Libc-2.13 (no meu caso) e libc.so.6 são idênticos? Por que devo colocar libc.so.6 em /lib64/ e não em /lib/x86_64-linux-gnu/, onde eu deletei?
LonelyWebCrawler
Se você não excluiu a biblioteca que é a fonte de todos esses links, pode valer a pena tentar o ldconfig que restabelece todos os links. Você poderia usar o -v Parâmetro detalhado para mais informações.
harrymc
Infelizmente eu deletei a biblioteca - é complicado.
LonelyWebCrawler
Eu adicionei acima alguns conselhos para este caso.
harrymc
Então, desculpe, eu te entendi mal. eu ainda tenho libc-2.13.so (embora não 2.19 ). Vou tentar o link acima.
LonelyWebCrawler