R 패키지를 설치하는 동안 "/lib64/libc.so.6: 버전 'GLIBC_2.7'을 찾을 수 없습니다." 오류 발생

R 패키지를 설치하는 동안 "/lib64/libc.so.6: 버전 'GLIBC_2.7'을 찾을 수 없습니다." 오류 발생

"GenomicFeatures"라는 R 패키지를 설치하는 데 문제가 있습니다.

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '$HOME/.R325/lib64/R/library/RCurl/libs/RCurl.so':
  /lib64/libc.so.6: version `GLIBC_2.7' not found 

확인해 보니 루트용 라이브러리가 없습니다.

/usr/lib64

나는 알아차렸다eyoung100의 친절한 제안, 그러면 내 문제가 해결될 수도 있습니다. Unix/Linux에 대한 나의 지식은 아직 초기 단계이므로 그는 전체 루트의 미니 버전을 사용하고 "newroot"에 RPM 패키지를 설치할 것을 권장하는 것 같습니다.

전체 시스템을 설치하자고 제안한 것 같은데, 꼭 필요한가요?

어떤 제안이 있으십니까? 문제를 해결하는 데 필요한 정보가 있으면 알려주시기 바랍니다.

답변1

또 다른 아이디어(이것이 제가 이것을 새로운 답변으로 게시하는 이유입니다):

일부 배포판은 다른 위치에서 라이브러리를 로드합니다. 예를 들어, Debian에서 libc는 /usr/lib64가 아니라 /lib/x86_64-linux-gnu에 있습니다. 애플리케이션은 시스템이 구성한 디렉터리에서 시스템 라이브러리를 로드해야 하므로 이는 호환성 문제가 아닙니다. 이 응용 프로그램은 배선된 위치에서 libc를 로드하려고 시도하여 이를 중단하므로 이는 응용 프로그램 개발자의 잘못입니다.

libc.so.6이 어디에 있는지 확인하세요(가장 쉬운 방법:

ldd /bin/bash

명령) 그런 다음 /usr/lib64에 해당 디렉터리에 대한 소프트 링크를 만듭니다(명령: ln -sv /my/libc/directory /usr/lib64 ).

답변2

이 패키지에는 최소한 glibc 버전 2.7이 필요합니다. 이 버전은 아직 오래된 버전이지만 배포판은 오래된 것 같습니다.

chroot 솔루션이나 시스템 업그레이드가 모두 가능하지 않은 경우 다른 두 가지 방법이 있습니다.

  1. 시스템에서는 glibc만 업그레이드할 수 있습니다. 이전 버전과의 호환성이 강력하므로 아무 문제도 발생하지 않을 수 있지만 여전히 시스템이 수리할 수 없을 정도로 손상될 위험이 있습니다.

  2. 최신 glibc 패키지에서 로컬 디렉터리로 glibc 파일을 추출하고 해당 특정 디렉터리만 사용하여 프로세스를 실행할 수 있습니다. 이를 수행하려면 LD_LIBRARY_PATH 환경 변수를 사용할 수 있습니다. 이것이 사용자가 직접 호출하는 것이 아니라 R에 의해 호출되는 R 모듈이라는 것을 알고 있으면 해당 작업에 대한 몇 가지 간단한 쉘스크립트 래퍼를 구현해야 할 수도 있습니다.

관련 정보