CentOS 6.5에서 glibc를 2.14로 업데이트하는 방법


47

CentOS 6.5 컴퓨터에 Android NDK를 설치하고 싶습니다. 그러나 프로그램을 실행할 때 실행하려면 glibc 2.14가 필요하다고 말합니다. 내 CentOS 6.5에는 Glibc 2.12 만 설치되어 있습니다. 그래서 나는 glibc를 다음과 같이 업데이트하려고 시도했다.

$ sudo yum update glibc

그러나 그 후 glibc 버전은 2.14가 아니라 여전히 2.12라는 것을 알았습니다.

$ ldd --version
ldd (GNU libc) 2.12

CentOS 리포지토리에서 glibc 2.14를 사용하지 못할 수 있습니다. CentOS 6.5에서 glibc 2.14로 어떻게 업데이트 할 수 있습니까?


2
GLibC를 2.12에서 2.14로 업그레이드하는 것보다 GLibC 2.14가 포함 된 CentOS7로 업그레이드하는 것이 더 쉽습니다.
eyoung100

@ eyoung100 그래도 여전히 7이 아닌 CentOS 6.5가 필요합니다. Glibc를 2.14로 쉽게 업그레이드 할 수 있습니까? 고마워!
tonga

3
아니요, 이유에 대한 다른 답변 중 하나를 참조하십시오 .
eyoung100

귀하의 답변에 따르면, 최상의 솔루션은 CentOS 7로 업그레이드하거나 glibc 2.12가 필요한 이전 버전의 NDK를 사용하는 것 같습니다. 귀하의 의견에 감사드립니다.
tonga

1
NDK를 실행하기 위해 CentOS7 chroot를 설치할 수도 있습니다.
derobert

답변:


68

당신은 업데이트 할 수 없습니다 glibcCentos 6안전하게. 그러나 쉽게 2.14나란히 설치 2.12한 다음 프로젝트 등을 컴파일하는 데 사용할 수 있습니다. 방법은 다음과 같습니다.

mkdir ~/glibc_install; cd ~/glibc_install 

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

tar zxvf glibc-2.14.tar.gz

cd glibc-2.14

mkdir build

cd build

../configure --prefix=/opt/glibc-2.14

make -j4

sudo make install

export LD_LIBRARY_PATH="/opt/glibc-2.14/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

3
Builing 프로세스는 느린 AWS에서 2.5 시간이 걸립니다. 아마도 다음 정보를 누군가에게 유용 할 것입니다 : 위의 지침은 psycopg2문제를 해결합니다 ImportError: /lib/libc.so.6: version 'GLIBC_2.14'(Centos 6.5 및 PostgreSQL v 9.6 사용)
TitanFighter

1
훌륭한 답변! 나는이 대답을 정확하게 따르고 매력처럼 작동했습니다. 감사합니다
thonnor

2
이후 버전에도 사용할 수 있습니다. "2.14"를 "2.23"으로 변경하거나 필요한 버전을 다음과 같이 강조 표시하면됩니다 /usr/local/lib/somlelib.so: undefined reference to 'somefunction@GLIBC_2.23'(마지막 몇 자리 숫자는 버전입니다). 컴파일 속도를 높이려면 CPU 등에 8 개의 스레드가있는 경우 make -j8을 사용하십시오. 몇 분 안에 완료되었습니다.
Roel Van de Paar

relocation error: libc.so.6: symbol _dl_find_dso_for_object, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference내보내기 단계 후에 (어떤 명령을 시도 할 때) 남았습니다 . 누구든지 도울 수 있습니까? @Roel
belka

1
감사합니다 사람에 예상대로 일했습니다 CENTOS 6.10. 내 사용자가 sudoers 파일에 없었기 때문에이 줄 sudo make installmake installroot 로 바 꾸었습니다.
회계사

7

glibc 2.14를 병렬로 설치하려면 configure 접두사를 추가하십시오 :

tar zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/opt/glibc-2.14
make -j4
make install

이 프로세스에 따라 2.14를 빌드 할 수 있지만 컴파일러에게 glibc를 찾을 위치를 알려야합니다.

다음은 glibc를 프로그램에 노출시키는 방법입니다.

  1. LD_LIBRARY_PATH = / opt / glibc-2.14 / lib

    LD_LIBRARY_PATH를 내 보냅니다.

    라이브러리는 현재 로그인 세션 중에 노출됩니다.

  2. 새 glibc 버전을 영구적으로 연결할 수 있지만 아래 경고를 읽으십시오.

    ln -sf /opt/glibc-2.14/glibc-2.14.so /lib/libc.so.6.

libc.so.6은 단지 심볼릭 링크이기 때문에. 위 명령을 실행하면 링크가 새로운 glibc 라이브러리를 향하게됩니다. 그러나이 단계는 Linux에 이전 버전에 의존하고 작동을 멈출 프로그램이 많으므로 권장하지 않습니다.


도서관 노출에 대한 자세한 내용은 +1
회계사

2

일반적인 대안 기술. 병렬로 GLIBC 2.14 설치 (/ opt 디렉토리에 통합) 코어 OS를 중단하지 않고 필요한 프로그램에서 사용할 수 있습니다.


7
어떻게 하시겠습니까? rpm을 다운로드하고?
rncrtr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.