링커 공유 라이브러리 기본 경로를 리디렉션하는 방법 /lib64/libc.so.6, /lib64/libc.so.6: 'GLIBC_2.14' 버전을 찾을 수 없습니다.

링커 공유 라이브러리 기본 경로를 리디렉션하는 방법 /lib64/libc.so.6, /lib64/libc.so.6: 'GLIBC_2.14' 버전을 찾을 수 없습니다.

내 리눅스 머신은 x86_64-redhat-linux입니다.

그러나 나는 다른 팔 도구 체인을 사용하고 있습니다aarch64-리눅스-gnu-gcc이 머신에서 빌드(이 머신에서 빌드한 것을 실행할 필요가 없고 그냥 빌드하므로 arm 툴체인을 사용하여 빌드하는 것이 좋을 것입니다)

다음 오류가 발생합니다.

aarch64-linux-gnu-gcc: /lib64/libc.so.6: 
version `GLIBC_2.14' not found (required by aarch64-linux-gnu-gcc)

따라서 현재 기본 공유 라이브러리 경로는 /lib64/libc.so.6을 가리킵니다. 저는 이 컴퓨터의 유일한 사용자가 아니기 때문에 업데이트하고 싶지 않습니다. 내 libc.so.6을 어떻게 사용할 수 있습니까? 검색 경로를 다른 디렉터리로 리디렉션합니까?

답변1

문제

GLIBC 2.12가 설치되었으며 OP 제목에 나와 있듯이 그가 사용하려는 크로스 컴파일 툴체인필요하다GLIBC >2.14. OP에는 시스템을 업데이트할 수 없기 때문에 제약이 있다고 명시되어 있습니다.

주의사항

3단계의 아래 목록은 변경 루트를 빌드하는 데 사용됩니다. 가능하다면 배포 저장소에 포함된 패키지를 사용하세요. 저장소의 최신 버전이 체인지루트 외부에 설치된 버전과 동일하면 3단계를 중지하고 다음과 같은 온라인 패키지 검색을 사용하십시오.RPM찾기최신 버전을 찾고 계속하세요. changroot 외부에 최신 버전이나 온라인 버전을 설치하지 마십시오. 이로 인해 시스템이 파손될 수 있으며 이에 대해 저는 책임을 지지 않습니다!

해결책

OP는 이제체인지루트 감옥GLIBC 버전은 병렬로 설치할 수 없으므로 ARM 크로스 컴파일러를 설치해야 합니다. 또한보십시오위키피디아 - Chroot. 그렇게 하려면 다음 단계를 따르십시오.

  1. 변경 루트에 대한 디렉터리를 만듭니다.mkdir -pv $HOME/newroot
  2. chroot에 설치할 RPM 패키지를 리디렉션하는 재정의를 만듭니다 export ROOT=$HOME/newroot && echo $ROOT. 궁금하다면 4단계를 참조하세요.
    • 이는 곧 매우 중요해지기 때문에 새 변수를 에코하십시오.
  3. 변경 루트에 권장되는 rpm 패키지를 다운로드합니다(패키지 이름은 다음과 같습니다).cd $ROOT && mkdir -v download && cd download
    • 설정
    • 파일 시스템
    • 기본 시스템
    • ldconfig
    • 글리BC <--위의 주의 사항을 기록해 두십시오. 그렇지 않으면 이 작업을 수행한 것이 아무것도 아닙니다.
    • mktemp
    • 텀캡
    • 저주를 받다
    • 정보
    • 파일 유틸리티
    • 배쉬 && libtermcap
    • gdbm
    • tcsh
    • chkconfig
    • 텍스트 유틸리티
    • 크랙립
    • cracklib-dicts
    • 비밀번호
    • 말 잘하는
    • 둔한 사람
    • 팸 --nodeps
    • 섀도우 유틸리티
    • 속어
    • 유틸리티-리눅스 --nodeps
    • sh-utils
    • zsh
    • sed
    • bzip2
    • 팝트
    • zlib
    • rpm
    • 크로스컴파일 툴체인 및 해당 종속성
  4. 다음 명령을 사용하여 위 목록을 설치합니다 . 인수에 rpm -i --root=$ROOT packagename유의하세요 . --root이는 RPM의 기본 설치 동작을 무시합니다. bash && libtermcap과 같은 추가 항목이 포함된 목록의 해당 패키지를 확인하세요. 인수를 포함하여 목록에 표시된 대로 rpm -i 명령을 실행하십시오 --root. 위의 예에서 libtermcap은 bash와 동일한 디렉터리에 설치됩니다.
  5. 마지막으로 chroot $ROOT && export PS1="(chroot) $PS1".

참조

위의 단계는 다음에서 조정되었습니다.RedHat Linux 6.2로 chroot 환경을 설정하는 방법 - FTP 및 웹 서비스용

관련 정보