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


20

구 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 '를 찾을 수 없음 (/ home / wcbao / M / Wolfram / Mathematica / 9.0 / SystemFiles / Library / 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 '를 찾을 수 없음 (/ home / wcbao / M / Wolfram / Mathematica / 9.0 / SystemFiles / Library / Linux-x86-64 / libQtCore.so.4)

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

누군가 다른 곳에 어딘가에 새로운 버전의 glibc를 설치하고 프로그램을 실행하는 것이 가능하다고 제안했습니다.

LD_LIBRARY_PATH=/lib/new your_application

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

그래서이 방법이 실제로 작동하는지 묻습니다. 그리고 그것이 작동한다면, 단계별로 수행하는 방법을 알고 싶습니다 (지금은 Linux 경험이 부족하고 가능한 빨리 Linux에서 Mathematica를 사용하고 싶습니다).

편집 :

"Ermine"이라는 소프트웨어가 있음을 알았습니다. 외부 환경에 의존하지 않는 독립형 패키지로 소프트웨어를 배포 할 수있는 것 같습니다. 불행히도, 그것은 셰어웨어입니다. "Ermine"이 할 수 있기 때문에 구 시스템에서 새로운 소프트웨어를 사용하는 방법이 있어야한다고 생각합니다.


2
작동합니다. 설정하는 데 많은 작업이 필요할 수 있습니다 (Mathematica가 의존하는 모든 라이브러리를 설치해야합니다). 내 추천은 최신 릴리스의 rpm 패키지를 집의 하위 디렉토리에 설치하는 것입니다. RH에 더 익숙한 사람이 그 방법을 설명하는 답변을 쓰도록하겠습니다.
Gilles 'SO- 악의를 그만두십시오'

@Gilles Hi, Gilles, 대단히 감사합니다 !!! 나는 그것을 고대하고있다.
user15964

이다 다른 곳의 glibc 설치 위험.
BenjiWiebe

@ BenjiWiebe-정확히 어떤 종류의 위험을 언급하고 있습니까?
FooF

1
수퍼 유저로부터 교차 게시 : superuser.com/questions/543249/… 거기에서 저의 의견을 반복합니다 : "RHEL4는 8 살이며 정상적인 지원 기간이 끝났습니다. 설치할 수있는 다른 머신이 없습니다 "예 : 데스크탑 컴퓨터"
Burhan Ali

답변:


10

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

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

해당 디렉토리에 설치 한 후에 LD_LIBRARY_PATH는 새 glibc의 위치 로 설정해야 합니다.

컴파일해야 할 종속성을 파악해야합니다. LD_ * 변수를 설정하고 프로그램 (어쨌든해야 할)을 실행하는 쉘 스크립트를 생성하고 반복적으로 실행합니다.

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

이것은 할 수 있습니다 매우 시간이 걸리는 과정과 참을성이 아니거나 마음의 희미한 - 때때로 당신은 당신의 머리를 꺼내 할 수 있도록 할 수 있습니다 응용 프로그램 작업을하는 데 필요한 수 의존성을 통해 귀하의 방법을 다시 컴파일 / 이송.

업데이트 1 :

나는의 glibc-2.4을 다운로드 받으려면에 CentOS 6에 컴파일하려고 configure나는 변경했다가 제대로 작동 ac하고 ld변경하여 버전 체크를 :

2.1[3-9]*)

에:

2.*)

라인에서 40454106에서 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. 제대로 구성되어 있고 제대로 구축되기 시작했지만 오류가 발생하기 시작했습니다. 대부분 컴파일러가 재정의되는 것에 대해 불평합니다.

그 시점에서 나는 포기했다 ... 너무 많은 시간이 걸리기 때문 이다. ;)


마지막 줄이 중요하지만 정보는 +1입니다. OP는 관련된 노력의 가치가 가치가 있는지 결정해야합니다.
Burhan Ali

모두 감사합니다! 알겠습니다. Mathematica 8을 타협으로 고수하는 것이 낫습니다. Red Hat 4에서 작동합니다.
user15964

@livingstaccato 안녕하세요, 그러나 어떻게 vonbrand의 말을 주석으로 처리 하는가 : "어떤 이상한 장소에 새 버전을 설치하는 것이 더 위험합니다 ... 이상한 장소에있는 도서관은 무작위로 물건을 집어들 수 있습니다 ....". 정말 위험합니까? 귀하의 답변에 설명 된 방법을 시도한 적이 있습니까?
user15964

@ user15964하고있는 일에주의를 기울이지 root 않거나 세션 초기화 스크립트에서 LD_PRELOAD를 변경하고 자신을 잠그는 것과 같은 이상한 일을하지 않는 한 위험하지 않습니다 .
livingstaccato

@ user15964 또한-예-나는 다시 glibc 방식을 다시 만들었습니다.
livingstaccato

1

배포판에서 지원하는 버전으로 glibc를 업데이트하는 것은 위험이 적습니다. 이 버전 핸들 호환성에 날짜를 기록 까지 다시하고 (버그를 드러내는) 새 버전은 교체에 드롭해야한다. IMHO는 이상한 장소에 새 버전을 설치하는 것이 위험합니다.


4
그러나 문제는 관리자가 아니며 권한이 없다는 것입니다. 권한이 있어도 시스템을 변경하는 것이 두렵습니다. 컴퓨터가 아니기 때문에 실제로 클러스터이기 때문에 많은 사람들이 작업하고 있습니다. 그런데 왜 다른 장소의 새 버전이 위험한가요? 필요한 소프트웨어를 전체 시스템이 아닌 새 라이브러리에 연결하기 만하면됩니다.
user15964

1
그리고 임의의 패키지를 자유롭게 설치 하시겠습니까? 시스템 관리 정책이 심각하게 개정되었습니다. 이상한 장소에서 라이브러리는 임의의 물건에 의해 포착, 그리고 실행 밖으로 다림질 할 수있는 당신 만 (그리고 시작 가능한 프로세스, 응용 프로그램을 하지 않습니다 ... 표준 프로그램을 포함) 꽤 도전을 끌 수
vonbrand을

1
@vonbrand-넌센스, 높은 보안 시스템 (예 : 일부 공유 개발자 나 테스트 시스템 / 클러스터)에 대해 이야기하지 않는 한, 감사받지 않은 외국 소프트웨어에 대한 건전한 편집증이 필요합니다. 임의의 손상과 관련하여 신뢰할 수있는 출처에서 격리 된 응용 프로그램을 설치하는 것보다 libc (모든 시스템에 영향을 미치고 시스템 손상을 일으킬 수 있음)를 업데이트하는 것은 상당히 다른 문제입니다 (Mathematica는 임의 패키지라는 개념에 동의하지 않습니다). 물론 리소스 소진은 유능한 sysadmin이 해결해야 할 유효한 문제입니다.
FooF

@FooF, 나는 "관리자가 가장 잘 알고, 사용자가 지원 하지 않고 원하는대로 할 수있게 해주는"사례가 너무 많다는 것을 본 적이 있습니다.
vonbrand

1
@vonbrand-나는 당신의 마지막 의견에 동의하는 경향이 있습니다. 그러나 나는 libc를 업데이트하거나 잘 알려진 소프트웨어 ( "무작위 패키지"가 아님)를 설치하는 것이 (악의적 인 의도가 없다고 가정) 어떻게 든 비교할 수 없다는 것에 강력히 동의하지 않습니다. 우리는 환경의 본질과 사용자가 여기에서 결정적인 의견을 표명하는 것에 대해 거의 알지 못합니다. (많은 유능한 사용자와) 소프트웨어 개발 기계에서는 사용자가 자신의 소프트웨어를 실행할 수 있도록 이해. 때로는 명확한 필요성이 있습니다 (OpenWRT 및 OpenEmbedded는 대상 임베디드 플랫폼이 f / w 이미지를 빌드하는 데 필요한 일부 도구를 소스에서 빌드 함).
FooF

-3

이 특별한 경우에는이 공유 시스템의 관리자로부터 도움과 허가가 없다면 귀찮게하지 말아야합니다.

Mathematica는 Windows, Mac 및 Linux에서 실행되므로 다른 사람에게 영향을 줄 염려가없는 데스크탑 컴퓨터에 설치하십시오. 또한 OS가 RHEL4보다 최신 버전 일 가능성이 높으므로 설치를 위해 왜곡 할 필요가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.