Ядро Linux: 3.0.13-0.27-по умолчанию #1 SMP
Я установил утилиту «dialog» ( /usr/bin/dialog ), просто скопировал файл bin в /usr/bin
При попытке запустить его появилось сообщение об отсутствии библиотеки libncursesw.so.5.
Чтобы решить проблему, я пытаюсь скопировать файл libncursesw.so.5 в /usr/lib/, но это не помогает.
• Теперь у меня возникла еще одна ошибка:
“error while loading shared libraries: /usr/lib/libncursesw.so.5: file too short”…
решение1
Скопированный вами двоичный файл dialog
является динамическим исполняемым файлом, что означает, что он использует общие библиотеки как часть своего выполнения. Вы можете увидеть это с помощью 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)
В моем случае это библиотеки, на которые он опирается. В зависимости от вашей версии, параметров компиляции и других факторов, ваш двоичный файл может иметь другие требования.
Поскольку вы вручную скопировали двоичный файл, /usr/bin
не выполняя никакого разрешения зависимостей, вполне возможно, что эти общие библиотеки отсутствуют в вашей системе. Второе сообщение об ошибке, которое вы получили, "file too short", указывает на то, что с этой библиотекой что-то не так (вероятно, она действительно слишком короткая, это должна быть символическая ссылка, а не файл. Из одного вашего вопроса невозможно понять, что вы туда поместили).
Вместо того, чтобы идти по этому пути, вам следует сначала попробовать установить dialog
из вашего менеджера пакетов, а не просто скопировать его /usr/bin
напрямую — таким образом, вы сохраните запись об установке пакета, будете получать обновления без особых хлопот, и у вас будут зависимости для него, установленные автоматически вашим менеджером пакетов. Поскольку вы используете OpenSUSE, попробуйте удалить файлы, которые вы вручную скопировали ( /usr/bin/dialog
и /usr/lib/libncursesw.so.5
), а затем запустить yum install dialog
. Это должно исправить все ваши проблемы.