우리의 계산 클러스터는 구 커널 (2.6.18)과 구 라이브러리와 바이너리가있는 아주 오래된 CentOS 버전을 실행합니다. 모든 것을 업데이트하려면 모든 노드에서 많은 작업이 필요하기 때문에 이것은 옵션이 아닙니다.
(및 / 또는 ) C++11
의 최신 버전 이 필요한 프로그램을 컴파일하고 사용하려고합니다 . 시스템을 엉망으로 만들고 싶지 않기 때문에 일부 로컬 디렉토리 트리에서 루트가 아닌 사용자 로이 작업을 수행하려고합니다.gcc
clang
문제는 머신에있는 것보다 gcc
새로운 것이 필요 glibc
하다는 것입니다. 따라서, 나는 별도, 최신 버전을 유지할 필요가 glibc
내 로컬에 lib/
설명 된대로 아마 트리 여기 .
어디에서 잃어버린하고, 어떻게 모든 일에 내 로컬 libs와의 I "하드 코드"경로 필요한 바이너리, 즉 gcc
, g++
등? LD_LIBRARY_PATH를 로컬 lib/
트리로 설정 하면 모든 시스템 바이너리 가 컴파일되지 않은 ELF file OS ABI invalid
새 libm.so
/ 를 사용하기 때문에 더 이상 작동하지 않습니다 ( ) libc.so
.
그래서, 그것을 포장하기 : 새로운 지역 개발 스택 (포함 유지하는 적절한 방법은 무엇입니까 glibc
, gcc
루트로 장난하지 않고 기존 시스템에 병렬로 등)?
부수적 인 질문으로 : LD_LIBRARY_PATH 설정은 분리에 관해서 SE 전역에 솔루션으로 게시됩니다 glibc
. 나를 위해 시스템 바이너리 (예 :)를 실행하려고하면 위의 오류가 발생합니다 ls
. 어떻게 오세요? 내가 잘못했거나 의도 한 행동입니까?