"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 솔루션이나 시스템 업그레이드가 모두 가능하지 않은 경우 다른 두 가지 방법이 있습니다.
시스템에서는 glibc만 업그레이드할 수 있습니다. 이전 버전과의 호환성이 강력하므로 아무 문제도 발생하지 않을 수 있지만 여전히 시스템이 수리할 수 없을 정도로 손상될 위험이 있습니다.
최신 glibc 패키지에서 로컬 디렉터리로 glibc 파일을 추출하고 해당 특정 디렉터리만 사용하여 프로세스를 실행할 수 있습니다. 이를 수행하려면 LD_LIBRARY_PATH 환경 변수를 사용할 수 있습니다. 이것이 사용자가 직접 호출하는 것이 아니라 R에 의해 호출되는 R 모듈이라는 것을 알고 있으면 해당 작업에 대한 몇 가지 간단한 쉘스크립트 래퍼를 구현해야 할 수도 있습니다.