![모든 Linux 아키텍처를 감지하는 가장 좋은 방법은 무엇입니까?](https://linux55.com/image/171907/%EB%AA%A8%EB%93%A0%20Linux%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%EB%A5%BC%20%EA%B0%90%EC%A7%80%ED%95%98%EB%8A%94%20%EA%B0%80%EC%9E%A5%20%EC%A2%8B%EC%9D%80%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
Bash 스크립트에서 현재 Linux 아키텍처를 감지해야 합니다. 때때로 uname이 정보를 제공하는 것을 본 적이 있지만 까다롭습니다. uname 명령이 아닌 한 위치에 표시되는지 여부는 시스템에 따라 다릅니다.
Debian 기반 시스템에서는 이 명령이 표시되지만 dpkg --print-architecture
Debian 기반 시스템에만 해당됩니다.
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)에 뭔가가 있는지 확인해 보세요.