Linux 커널: 3.0.13-0.27-기본 #1 SMP
"대화 상자" 유틸리티( /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
. 그러면 모든 문제가 해결됩니다.