GLIBC를 업데이트하지 않고 새 소프트웨어를 실행하는 방법은 무엇입니까?

GLIBC를 업데이트하지 않고 새 소프트웨어를 실행하는 방법은 무엇입니까?

이전 Red Hat Enterprise Linux AS 버전 4 시스템에 Mathematica 9를 설치했습니다. 설치 후 Mathematica를 시작하려고 하는데 다음 메시지가 나타납니다:

/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica:/lib64/tls/libc.so.6: 'GLIBC_2.4' 버전을 찾을 수 없습니다(/required ) 홈/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/Libraries/Linux-x86-64/libML64i3.so)

/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica:/lib64/tls/libc.so.6: 'GLIBC_2.4' 버전을 찾을 수 없습니다(/required ) 홈/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/Libraries/Linux-x86-64/libQtCore.so.4)

위험하고 관리자가 이를 허용하지 않기 때문에 시스템 glibc를 업데이트하고 싶지 않습니다.

누군가가 다른 곳에 glibc의 새 버전을 설치한 다음 프로그램을 실행할 수 있다고 제안했습니다.

LD_LIBRARY_PATH=/lib/new your_application

그리고 이것은 시스템에 영향을 미치지 않습니다.

그래서 저는 이 방법이 실제로 효과가 있는지 묻고 싶습니다. 작동한다면 단계별로 어떻게 수행하는지 알고 싶습니다. (저는 현재 Linux 경험이 거의 없으며 곧 Linux에서 Mathematica를 사용하고 싶습니다.)

편집하다:

"Ermine"이라는 소프트웨어가 있다는 것을 알았습니다. 외부 환경에 의존하지 않고 독립형 패키지로 소프트웨어를 배포할 수 있는 것으로 보입니다. 안타깝게도 셰어웨어입니다. 그래서 나는 "Ermine"이 그것을 할 수 있기 때문에 이전 시스템에서 새로운 소프트웨어를 사용할 수 있는 방법이 있을 것이라고 생각했습니다.

답변1

새로운 버전의 GLIBC를 컴파일하여 별도의 디렉터리에 저장할 수 있습니다. 가장 먼저 해야 할 일은 원하는 glibc 버전을 다운로드하는 것입니다.http://ftp.gnu.org/gnu/glibc/.

스크립트를 실행 하고 다음 과 같이 configure설정합니다 .--prefix=/home/you/mylibs

LD_LIBRARY_PATH이 디렉터리에 설치한 후 새 glibc 위치로 설정해야 합니다 .

컴파일해야 할 수 있는 종속성을 찾아야 합니다. LD_* 변수를 설정하고 프로그램을 실행하는 쉘 스크립트를 생성한 다음(어쨌든 수행해야 함) 이를 반복적으로 실행하여 누락된 라이브러리를 다운로드/재컴파일할 수 있습니다.

또한 이를 사용하여 ldd프로그램에 필요한 공유 라이브러리를 확인한 다음 ldd각 라이브러리와 함께 사용하여 glibc가 필요한지 여부를 결정할 수 있습니다.

이것은매우참을성이 없거나 심장이 약한 사람에게는 시간이 많이 걸리는 과정입니다.- 애플리케이션이 작동하는 데 필요한 가능한 종속성을 탐색/재컴파일하면 때로는 머리를 뽑고 싶을 수도 있습니다.

업데이트 1:

glibc-2.4를 다운로드하고 CentOS 6에서 컴파일을 시도했습니다. 이것이 작동 하려면 다음을 통해 변경 하고 버전을 확인 configure해야 합니다 .acld

2.1[3-9]*)

도착하다:

2.*)

라인 4045과 파일 자체 모두 4106에서 configure. *FLAGS 환경 변수를 다음과 같이 설정했습니다.

LDFLAGS="-Wl,--sort-common -Wl,-zcombreloc -Wl,-znow" 
CFLAGS="-pipe -fomit-frame-pointer -g1 -O3 -frename-registers -fweb -ftracer -fmodulo-sched -fvariable-expansion-in-unroller -fgcse-sm"
CXXFLAGS="${CFLAGS}" 
CFLAGS="${CFLAGS} -freorder-blocks-and-partition" 
export LDFLAGS CFLAGS CXXFLAGS

그런 다음 실행하십시오 ./configure --prefix=/home/tim/masochist. 올바르게 구성되었고... 올바르게 빌드되기 시작했습니다... 하지만 오류가 발생하기 시작했습니다. 주로 컴파일러가 재정의되는 것에 대해 불평했습니다.

그때 포기했어요... 점점 변해가니까시간이 너무 많이 소요됨. ;)

답변2

배포판에서 지원하는 버전으로 glibc를 업데이트하는 것이 덜 위험합니다. 해당 날짜 버전과의 호환성을 처리하기 위해 작성되었습니다.멀리다시 돌아오면 (버그 없는) 새 버전이 대체되어야 합니다. IMHO, 익숙하지 않은 장소에 새 버전을 설치하는 것이 더 위험합니다.

답변3

이 특별한 경우에는 이 공유의 시스템 관리자로부터 도움(및 허가)을 받지 않는 한 걱정하지 마십시오.

Mathematica는 Windows, Mac, Linux에서 실행되므로 다른 사람에게 영향을 미칠 염려 없이 데스크톱 컴퓨터에 설치하기만 하면 됩니다. 이 운영 체제는 RHEL4보다 최신 버전일 가능성이 높으므로 설치하기 위해 변경할 필요가 없습니다.

관련 정보