![mv: não é possível abrir o arquivo de objeto compartilhado "libstdc++.so.6": aninhamento muito grande de links simbólicos](https://rvso.com/image/1000937/mv%3A%20n%C3%A3o%20%C3%A9%20poss%C3%ADvel%20abrir%20o%20arquivo%20de%20objeto%20compartilhado%20%22libstdc%2B%2B.so.6%22%3A%20aninhamento%20muito%20grande%20de%20links%20simb%C3%B3licos.png)
O erro pode ser um pouco diferente daquele do tópico - eu estava traduzindo do meu idioma nativo.
Depois que tudo deu errado, tentei fazer como o mjp apontou neste post: GLIBCXX_3.4.20 não encontrado, como corrigir esse erro?
Mas, como resultado, cada comando – apt-get, mv, cp retorna o erro do título do tópico. Não consigo voltar para a versão de backup do arquivo.
No momento não consigo nem entrar no Ubuntu. Fui cortado dentro da tela de login. Toda vez que tento fazer login, a tela fica preta e volto ao login. Só consigo usar o comando via ctrl+alt+F3
O que devo fazer?
Resposta para steeldriver (por favor, veja o comentário):
lrwxrwxrwx 1 root root 40 Jun 17 21:37 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 -> /usr/lib/x86_64-linux-gnu/libstdc++.so.6
-rw-r--r-- 1 root root 979056 May 7 2016 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19
lrwxrwrwx 1 root root 19 May 7 2016 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.old -> libstdc++.so.6.0.19
Responder1
[Devo admitir que estou um pouco confuso por que os utilitários básicos gostam mv
ou cp
quebrariam por causa de libstdc++.so.6
, no entanto, supondo que esse seja o motivo, aqui está o que eu tentaria]
Sua busybox ls
saída indica que você conseguiu vincular-se recursivamente /usr/lib/x86_64-linux-gnu/libstdc++.so.6
a si mesmo. Felizmente, parece que você não excluiu ou substituiu a /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19
biblioteca real. Portanto, você poderá recuperar recriando o link simbólico.
A pegadinha será se um sudo
ou ln
ambos dependem da libstdc++
biblioteca. (Presumivelmente bash
não, já que você pode fazer login com um shell no terminal virtual Ctrl+ Alt+ F3.)
Se sudo
estiver quebrado, você ainda poderá inicializar em um shell root a partir do modo de recuperação, conforme descrito emComo inicializo em um shell root?. Você precisará então remontar o sistema de arquivos raiz no modo leitura-gravação
mount -o remount,rw /
Depois disso, você pode tentar consertar o link quebrado
ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(isso deve criar umlink simbólico relativoque é resolvido em relação ao caminho de destino /usr/lib/x86_64-linux-gnu/
, semelhante ao seu .old
link).
Supondo que isso falhe porque ln
depende de libstdc++.so
, você pode tentar novamente usando o executável vinculado estaticamente busybox
, que possui um ln
:
/bin/busybox ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
Se isso funcionar, você pode usar exit
o shell root para prosseguir com a inicialização normal.