linux + 대화 상자 유틸리티를 실행할 수 없음 + 오류 발생

linux + 대화 상자 유틸리티를 실행할 수 없음 + 오류 발생

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. 그러면 모든 문제가 해결됩니다.

관련 정보