RHEL 8에 다중 아키텍처 패키지를 설치하는 방법

RHEL 8에 다중 아키텍처 패키지를 설치하는 방법

x86_64 Ubuntu 20.04 시스템에서 에서 /etc/apt약간의 수정을 하고 실행한 후 패키지 dpkg --add-architecture s390x를 설치 foo-dev:s390x하고 gcc-8-s390x-linux-gnu패키지에 대해 소프트웨어를 크로스 컴파일할 수 있습니다 foo-dev. arm64, 그리고 다른 구조도 마찬가지입니다 ppc64le. 제가 구축한 바이너리는 다른 아키텍처의 Ubuntu 20.04 플랫폼으로 인계될 수 있으며 예상대로 실행됩니다.

RHEL 8도 이러한 아키텍처에서 실행된다는 점을 고려하면 나도 똑같이 할 수 있기를 바랍니다. 다중 아키텍처를 지원하는 운영 체제인 것으로 보입니다. 예를 들어 다음과 같은 32비트 및 64비트 x86 패키지가 있습니다 openssl-devel.

openssl-devel.x86_64 : Files for development of applications which will use OpenSSL
openssl-devel.i686 : Files for development of applications which will use OpenSSL

그리고 동시에 설치할 수도 있습니다. 그래서 나는 그것이 간단 yum install openssl-devel.arm64하거나 비슷하기를 바라고 있습니다.

그러나 꽤 오랫동안 검색한 후에도 RHEL 8에서 , , 등에 대한 개발 패키지 또는 크로스 컴파일러 설치를 허용하기 위해 무엇을 해야 하는지 알 수 s390x없습니다 ppc6el4.arm64

가능합니까? 이러한 다른 아키텍처를 개발 대상으로 활성화하기 위해 필요한 저장소 구성을 수행하는 방법을 설명하는 문서가 있습니까? 누군가가 패키지 설치를 활성화하는 데 필요한 yum// 또는 관련 명령을 제공할 수 있습니까 dnf?rpm

답변1

i686RPM에는 시스템에 패키지를 설치할 수 있는 "호환성" 아키텍처 개념이 있습니다 x86_64. 그러나 외부 아키텍처는 다루지 않으며 gcc -m.

qemu-user-static그러나 외부 아키텍처용 패키지를 사용하고 빌드하는 것은 가능합니다 mock. 소스 RPM을 준비한 후 빌드합니다.사용 mock, 스키마 지정:

mock -r fedora-35-aarch64 package.src.rpm

mock에뮬레이션이 필요하다는 것을 감지하고 QEMU를 사용하여 chroot를 처리합니다. 이는 일반적으로 크로스 컴파일보다 느리지만 호스트와 대상 바이너리 문제는 발생하지 않습니다.

관련 정보