공유 라이브러리를 로드하는 중에 오류가 발생했습니다. 파일이 너무 짧습니다.

공유 라이브러리를 로드하는 중에 오류가 발생했습니다. 파일이 너무 짧습니다.

저는 CentOS 7 워크스테이션에서 작업하고 있습니다. Rstudio를 설치했는데 최근까지 잘 작동했습니다. 하지만 이제 실행하려고 하면 http://localhost:8787/다음과 같은 오류 메시지가 나타납니다.Unable to connect to service

터미널에서 R이 제대로 작동하는지 확인했는데 다음과 같은 오류가 발생했습니다.

/usr/lib64/R/bin/exec/R: error while loading shared libraries: /lib/libgcc_s.so.1: file too short

다음 명령을 사용하여 R을 다시 설치하려고 하면 sudo yum install R -y다음과 같은 응답을 받습니다.

Package R-3.5.2-2.el7.x86_64 already installed and latest version
Nothing to do

내가 무엇을해야 하나?

답변1

손상된 제품이 있습니다 .so.

일반적으로 다음 명령을 실행하여 해당 패키지가 속한 패키지를 찾을 수 있습니다.

yum provides \*/<so_file>

귀하의 경우:

$ yum provides \*/libgcc_s.so.1
[...]
libgcc-4.4.6-4.el6.i686 : GCC version 4.4 shared support library
Repo : base
Matched from:
Filename : /lib/libgcc_s.so.1
[...]

libgcc-4.4.6-4.el6.i686이 경우 다른 버전을 다운로드하시기 바랍니다 .

패키지를 다시 설치해야 합니다.

yum reinstall libgcc-<version>.i686

답변2

제 경우에는 ld : error : myfile: file too short다음과 같은 결과를 얻습니다.

ld: warning: myfile has a section extending past end of file
ld : error : myfile: ELF section name out of range

소스 코드와 바이너리 blob이 포함된 Nix용 폴더를 패치하고 있고... 패치할 파일이 많기 때문에 스크립트를 사용하여 동시에 모두 패치합니다( find및 사용 sed -i). 불행하게도 sed이는 바이너리 파일에도 적용되어 완전히 손상됩니다.

objdump -a myfile패치 전후에 인쇄하여 이를 깨달았습니다 (두 번째 경우에는 오류가 발생함).

관련 정보