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
.這應該可以解決您的所有問題。