Comandos de terminal não funcionam

Comandos de terminal não funcionam

Mudei todos os arquivos começando com lib de /../ para alguma pasta como, mv /../lib* /to/some/folder

depois disso, não consigo movê-lo de volta. Acontece como -bash: /bin/mv: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

Mesmo porque lsvem como-bash: /bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

Responder1

A restauração usando busyboxfuncionou no seu caso conforme você busyboxinstalou.

busyboxé um binário vinculado estaticamente e isso ajudou no seu caso, mas não há necessidade de usar binários vinculados estaticamente para reparar esse tipo de defeito.

Você também poderia fazer isso:

LD_LIBRARY_PATH=/some/path/where/the/libs/are mv ....

Se você também moveu o vinculador de tempo de execução dinâmico, também precisará chamar manualmente o vinculador de tempo de execução. Para entender como isso funciona, ligue:

man ld.so.1

ou no Linux

man ld.so

Isso normalmente resulta em uma linha de comando como:

LD_LIBRARY_PATH=/path/to/libs /path/to/libs/ld.so.1  mv ....

No Linux substitua /path/to/libs/ld.so.1por /path/to/libs/ld-linux-x86-64.so.2ou o que realmente é usado em seu sistema.

Em geral, você precisa saber se o binário que deseja chamar é de 32 ou 64 bits e chamar o vinculador de tempo de execução dinâmico correto.

BTW: Este é o método documentado para o Solaris desde 2004 e, desde aquele ano, não há mais binários vinculados estaticamente no Solaris.

informação relacionada