特定のARMアーキテクチャ文字列を決定する簡単なコマンドライン方式はありますか?

特定のARMアーキテクチャ文字列を決定する簡単なコマンドライン方式はありますか?

私はマシンのアーキテクチャに基づいて動作を決定するスクリプトを書こうとしています。以前にアーキテクチャラインを集めてみましたが、ARMアーキテクチャが何個あるのか、そのうちの1つが、、、、認知はよくわかりませんuname -marmhfarmelarm64

armhfこのスクリプトは、スクリプトの特定の部分が実行できることを確認する必要があるため、アーキテクチャがあるかどうかをarmel確認する簡単な方法を見つけようとしますarm64。出力に使用できる単一行コマンドまたは単純なコマンドはありますかarmhfarmelarm64

スクリプトはDebianとUbuntuシステム用に特別に書かれており、それを念頭に置いてタグ付けしました(これらのディストリビューションの1つにない場合は自動的に終了しますが、コマンドが存在する場合はより広い方法で適用されます)。


編集:最近armelが死亡し、arm64ソフトウェアビルダー(PPAまたは仮想ベース)が最も安定していないことがわかりました。したがって、armhfを探して仮定するためのワイルドカード検索がありますが、arm*まだ3つのうちの1つ(Ubuntu / Debianコマンド、カーネル呼び出し、またはその他のコマンド)を返す単一の行を見つける必要があります。

ベストアンサー1

Debianとその派生物では

dpkg --print-architecture

プログラムが実行されているマシンの基本アーキテクチャを出力します。これはarmhf、32ビットARM DebianまたはUbuntu(または派生製品)を実行しているコンピュータとarm6464ビットARMを実行しているコンピュータで機能します。

RPMベースのシステムでは

rpm --eval '%{_arch}'

現在のスキーマ名を出力します(他のパラメータの影響を受ける可能性がある、例えば --target)。

実行中のアーキテクチャは、ハードウェアアーキテクチャまたはカーネルアーキテクチャとは異なる場合があります。 Debian は 64 ビット Intel または AMD CPU 上で動作し、64 ビット ARM CPU 上でも動作するとi386信じています。カーネルにarmhfほとんどのバイナリ(基本アーキテクチャを含む)がある場合もありi386、QEMUがサポートしている場合はまったく異なるアーキテクチャのバイナリもあります(一般的な用途はクロスコンパイルのためのchrootです)。i386amd64debootstrap

おすすめ記事