linux + не могу запустить диалоговую утилиту + есть ошибки

linux + не могу запустить диалоговую утилиту + есть ошибки

Ядро 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. Это должно исправить все ваши проблемы.

Связанный контент