내 리눅스 머신은 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단계의 다음 목록은 변경의 루트를 구축하는 데 사용됩니다. 가능하다면 배포 저장소에 포함된 패키지를 사용하세요. 저장소의 최신 버전이 ChangeRoot 외부에 설치된 버전과 동일한 경우 3단계를 중지하고 온라인 패키지 검색을 사용하십시오.RPM 조회최신 버전을 찾아 계속하세요. changroot 외부에 최신 버전이나 온라인 버전을 설치하지 마십시오. 이로 인해 시스템이 손상될 수 있으며 저는 책임을 지지 않습니다!
해결책
OP는 이제루트 감옥 변경GLIBC 버전은 병렬로 설치할 수 없으므로 ARM 크로스 컴파일러를 설치하십시오. 당신은 또한 볼 수 있습니다위키피디아 - Chroot. 이렇게 하려면 다음 단계를 따르세요.
- ChangeRoot용 디렉터리를 만듭니다.
mkdir -pv $HOME/newroot
- chroot에 설치할 RPM 패키지를 리디렉션하는 재정의를 만듭니다
export ROOT=$HOME/newroot && echo $ROOT
. 궁금하시다면 4단계를 참고하세요.- 이는 곧 매우 중요해지기 때문에 새 변수를 에코해 보세요.
- Changeroot에서 권장하는 rpm 패키지를 다운로드합니다(패키지 이름):
cd $ROOT && mkdir -v download && cd download
- 설정
- 파일 시스템
- 기본 시스템
- LD 구성
- 글리BC <--위의 경고에 유의하십시오. 그렇지 않으면 이 작업을 수행해도 아무 소용이 없습니다.
- 임시 테이블
- 용어 모자
- 저주
- 정보
- 파일 도구
- 배쉬 && libtermcap
- 데이터베이스 관리 시스템
- tcsh
- 진주
- 구성 확인
- 텍스트 유틸리티
- 크랙 라이브러리
- Racklib-dicts
- 범용 데이터베이스
- 글립 혀
- 멍하니
- 팸 --nodeps
- 그림자 도구
- 속어
- 유틸리티-리눅스 --nodeps
- sh-utils
- 다루기 힘든
- sed
- 압축 패키지 2
- 팝트
- 주쿠
- 회전 속도
- 크로스 컴파일 툴체인 및 해당 종속성
- 매개변수
rpm -i --root=$ROOT packagename
에 주의하면서 위 목록을 설치하려면 다음 명령을 사용하십시오 .--root
이는 RPM의 기본 설치 동작을 무시합니다. 목록에서 bash && libtermcap과 같은 추가 기능이 있는 패키지를 확인하세요. 매개변수를 포함하여 목록에 설명된 대로 rpm -i 명령을 실행합니다--root
. 위의 예에서 libtermcap은 bash와 동일한 디렉터리에 설치됩니다. - 마지막으로 '라고 말할 수도 있습니다
chroot $ROOT && export PS1="(chroot) $PS1"
.
인용하다
위의 단계는 다음과 같이 조정되었습니다.RedHat Linux 6.2를 사용하여 chroot 환경을 설정하는 방법 - FTP 및 웹 서비스용