Kernel Linux: 3.0.13-0.27-default #1 SMP
Eu instalei o utilitário “dialog” ( /usr/bin/dialog ) apenas copiei o arquivo bin para /usr/bin
Quando tentei executá-lo, apareceu uma mensagem de erro sobre a falta de libncursesw.so.5 lib.
para resolver o problema tento copiar o arquivo libncursesw.so.5 para /usr/lib/ mas não ajuda
• Agora, recebi outro erro:
“error while loading shared libraries: /usr/lib/libncursesw.so.5: file too short”…
Responder1
O dialog
binário que você copiou é um executável dinâmico, o que significa que ele depende de bibliotecas compartilhadas como parte de sua execução. Você pode ver isso com ldd
:
$ ldd "$(type -p dialog)"
linux-vdso.so.1 (0x00007fff54fb1000)
libncursesw.so.5 => /usr/lib/libncursesw.so.5 (0x00007fbc0ecee000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fbc0e9eb000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fbc0e640000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbc0ef4d000)
No meu caso, essas são as bibliotecas das quais ele depende. Dependendo da sua versão, opções de compilação e outros fatores, seu binário pode ter requisitos diferentes.
Como você copiou manualmente o binário /usr/bin
sem fazer nenhuma resolução de dependência, é bem possível que essas bibliotecas compartilhadas não existam em seu sistema. A segunda mensagem de erro que você recebeu, "arquivo muito curto", indica que algo está errado com aquela biblioteca (provavelmente é muito curta, deveria ser um link simbólico em vez de um arquivo. Não é possível dizer o que você colocou lá no seu pergunta sozinha).
Em vez de seguir esse caminho, você deve primeiro tentar instalar dialog
a partir do seu gerenciador de pacotes em vez de apenas copiá-lo /usr/bin
diretamente - dessa forma, você mantém um registro da instalação do pacote, recebe atualizações sem muitos problemas e terá as dependências instaladas automaticamente pelo seu gerenciador de pacotes. Como você está no OpenSUSE, tente remover os arquivos que você copiou manualmente ( /usr/bin/dialog
e /usr/lib/libncursesw.so.5
) e execute o yum install dialog
. Isso deve resolver todos os seus problemas.