linux + 無法執行對話框實用程式 + 出現錯誤

linux + 無法執行對話框實用程式 + 出現錯誤

Linux 核心:3.0.13-0.27-default #1 SMP

我已經安裝了“dialog”實用程式( /usr/bin/dialog ),只是將 bin 檔案複製到 /usr/bin

當我嘗試運行它時,出現了有關缺少 libncursesw.so.5 lib 的錯誤訊息。

為了解決這個問題,我嘗試將檔案 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沒有執行任何依賴項解析,因此這些共用程式庫很可能在您的系統上不存在。您收到的第二個錯誤訊息“文件太短”,表明該庫有問題(可能確實太短了,它應該是符號鏈接而不是文件。不可能從您的庫中看出您放在那裡的內容單獨提問)。

您不應該走這條路,而應該首先嘗試dialog從套件管理器安裝,而不是直接將其複製到/usr/bin- 這樣,您可以記錄包的安裝,您可以輕鬆地收到更新,並且您將擁有它的依賴項由套件管理器自動安裝。由於您使用的是 OpenSUSE,請嘗試刪除您手動複製的檔案 (/usr/bin/dialog/usr/lib/libncursesw.so.5),然後執行yum install dialog.這應該可以解決您的所有問題。

相關內容