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. 이렇게 하면 모든 문제가 해결됩니다.

관련 정보