マシンのアーキテクチャに基づいてアクションを決定するスクリプトを記述しようとしています。私はすでにuname -m
を使用してアーキテクチャー行を収集していますが、ARMアーキテクチャーがいくつあるかわからないし、armhf
、armel
、またはarm64
のどれであるかわかりません。
これは、このスクリプトがスクリプトの一部を実行できるかどうかを判断するために必要なため、アーキテクチャがarmhf
、armel
、またはarm64
であるかどうかを判断する簡単な方法を見つけようとしています。 armhf
、armel
、またはarm64
のいずれかを出力するために使用できるワンライナーまたはシンプルなコマンドはありますか?
スクリプトは、DebianおよびUbuntuシステム用に特別に作成されており、私はこれを念頭に置いてタグを付けています(これらのディストリビューションを使用していない場合は自動的に終了しますが、これは、コマンドが存在します)
編集:最近、armelが死んでいて、arm64ソフトウェアビルダー(PPAまたは仮想ベース)が最も安定していないことがわかりました。したがって、arm*
を見つけてarmhfを想定するワイルドカード検索がありますが、それでも、Ubuntu/Debianコマンドであれ、カーネルコールであれ、3つのうちの1つを返す1つのライナーを理解する必要があります。
dpkg --print-architecture
実行されているマシンの主要なアーキテクチャを出力します。これは、32ビットを実行しているマシンではarmhf
ARM DebianまたはUbuntu(または派生物)、64ビットARMを実行しているマシンではarm64
になります。
実行中のアーキテクチャは、ハードウェアアーキテクチャまたはカーネルアーキテクチャと異なる場合があることに注意してください。 64ビットIntelまたはAMD CPUでi386
Debianを実行することは可能です。64ビットARM CPUでarmhf
を実行することは可能だと思います。ほとんどのi386
バイナリをi386
カーネルに置くことも可能です(そのため、主要なアーキテクチャはAMD64
です)...