/ bin / bash Nenhum tal arquivo ou diretório Conexão fechada [fechada]

2

Eu tento me conectar a um servidor usando o ssh (a autenticação está boa).

Eu tenho isso:

/bin/bash: No such file or directory
Connection to xxx closed.

Antes, tudo está funcionando bem, até que eu realmente fiz algo estúpido e esmagou o sistema, agora eu não posso nem ligar.

Acabei de instalar o Ubuntu 16.04 nesse servidor. E eu vi algo que eu quero é instalado em / usr / local / lib64, mas costumava ser em / usr / lib64 na versão anterior (12,04), então eu fiz

mv /usr/local/lib64 /usr/

Depois disso, nada funciona. Eu não posso nem ls , o único comando funciona é cd . Quando saio e tento reconectar, recebo esse erro. Agora, já que não consigo me conectar, não posso nem mesmo reinstalar.

Por favor me ajude, obrigado.

    
por Tony DING 23.04.2016 / 00:42

1 resposta

1

Eu não tenho o Ubuntu 16.04 instalado em nenhum lugar ainda, mas baseado nas tendências atuais dos layouts do sistema Linux, posso fazer uma boa estimativa do que aconteceu aqui.

A antiga distinção entre /bin e /usr/bin e a distinção entre /lib e /usr/lib desapareceram, porque não é mais necessário instalar sistemas em discos tão pequenos que pudéssemos não será possível obter o ambiente completo do usuário. Ou seja, até mesmo uma chave USB descartável é grande o suficiente para a instalação completa do SO, portanto não precisamos mais fazer distinção entre as ferramentas do modo de usuário único que tradicionalmente viviam fora de /usr e tudo o mais, que foi separado /usr em algum lugar.

Como muitos softwares ainda acreditam nessa distinção - por exemplo, nenhum sistema atual do tipo Unix ou Linux tem uma árvore /local ou /share paralela a /usr/local ou /usr/share , então você não pode Livre-se de /usr - a maneira comum de os sistemas operacionais modernos desfocarem essa antiga distinção é instalar tudo em /usr e, em seguida, criar links simbólicos como /usr/bin out para /bin . (Ou vice-versa; não importa).

Portanto, o que você fez com o comando mv é explodir /usr , que provavelmente foi um link simbólico para o diretório de instalação do sistema operacional consolidado em seu sistema. Isso não apenas substitui /usr/bin e, também, substitui efetivamente /bin .

Em outras palavras, como não havia /usr/local/lib64/bin/bash antes de você entrar com sua "correção" pesada, agora não há mais /usr/bin/bash ou /bin/bash .

Solução: Inicialize sua caixa no modo de recuperação e restaure a árvore /usr para seu estado anterior. Você pode precisar de um sistema Ubuntu 16.04 existente como referência para ver como ele deve ser restaurado.

Quanto ao seu problema original, o comando mv nunca foi uma boa solução. Se você quiser que programas que vivem em /usr/local/lib64 sejam executáveis sem um caminho explícito, adicione-os à variável PATH . No Ubuntu, isso provavelmente significa editar ~/.bash_profile .

Como você fala sobre um diretório lib , provavelmente não está lidando com executáveis, mas com bibliotecas, caso em que provavelmente precisará incluir uma entrada em /etc/ld.so.conf.d para que o diretório seja incluído no cache da biblioteca global. Veja man ldconfig para detalhes.

    
por 23.04.2016 / 02:05