모든 Linux 아키텍처를 감지하는 가장 좋은 방법은 무엇입니까?

모든 Linux 아키텍처를 감지하는 가장 좋은 방법은 무엇입니까?

Bash 스크립트에서 현재 Linux 아키텍처를 감지해야 합니다. 때때로 uname이 정보를 제공하는 것을 본 적이 있지만 까다롭습니다. uname 명령이 아닌 한 위치에 표시되는지 여부는 시스템에 따라 다릅니다.

Debian 기반 시스템에서는 이 명령이 표시되지만 dpkg --print-architectureDebian 기반 시스템에만 해당됩니다.

i386, amd64, armhf, armel, arm64 등인지 확인해야 합니다.

모든 Linux 시스템에서 작동하는 "범용" 도구가 있습니까? 현재 설치된 커널 아키텍처가 필요합니다. 내 하드웨어가 지원할 수 있는 아키텍처가 아닙니다.

답변1

GNU 핵심 도구커널이 컴파일된 아키텍처를 인쇄하는 arch및 명령이 함께 제공됩니다 .uname -m

dpkg --print-architecture시스템에 어떤 아키텍처의 바이너리를 설치할 수 있는지 알고 싶다면 이 도구가 적합합니다(애플리케이션 바이너리 인터페이스, ABI). 소위 말하는 점에 유의하시기 바랍니다.다중 아키텍처여러 아키텍처를 갖춘 시스템. 예: Debian PC는 64비트 CPU에서 64비트 커널과 32/64비트 혼합 소프트웨어를 실행할 수 있습니다. 이는 레거시 32비트 애플리케이션을 실행하면서 64비트의 이점을 활용하려는 경우에 유용합니다. 데비안 및 파생 배포판은 이와 관련하여 매우 강력하지만 다른 배포판이 유사한 기능을 제공하는지 확실하지 않습니다.

chroot 환경이나 컨테이너(ABI에서와 같이) 내에서 사용되는 아키텍처를 찾기 위한 이식 가능한 방법을 찾고 있다면 컴파일된 시스템 파일 중 하나의 아키텍처를 확인할 수 있습니다.

$ file -Lb /usr/bin/ld | cut -d, -f2
 x86-64

답변2

uname -m가능성 은 다양합니다 /proc/cpuinfo. getconf또한 구문 분석할 수 있는 구성 정보가 많이 있습니다. LSB(Linux Standard Library)에 뭔가가 있는지 확인해 보세요.

관련 정보