2023年4月2日作成

debパッケージのマルチアーキテクチャ

使い方

debパッケージはマルチアーキテクチャをサポートしている。 デフォルトではホストネイティブなアーキテクチャしか有効になっていないので、 以下のコマンドで必要なアーキテクチャを有効にする。

$ sudo dpkg --add-architecture arm64

有効になったか調べる場合もdpkgコマンドで行う。

$ dpkg-architecture --list
$ dpkg --print-foreign-architectures
arm64

上記ではarm64サポートを追加しているので、 以降、arm64パッケージをインストールできるようになる。 パッケージ名の末尾に、:で区切ってアーキテクチャ名を指定する。

$ sudo apt-get install git:arm64

# またはdpkgを使う場合
$ sudo dpkg -i git_arm64.deb

有効にしたアーキテクチャが不要になった場合は以下のコマンドで無効化する。

$ sudo dpkg --remove-architecture arm64

Armアーキテクチャの名前

OSやコンパイラなど、状況によって色々な名前がある。

ハードウェア仕様に由来するもの

armel
末尾のelはEnhanced ABI as little-endianのこと
32bitアーキテクチャ
CPUの世代はARMv4
armeb
末尾のbはbig-endianのこと
あとはarmelと同じ
armhf
末尾のhfはHardware Floatingのこと
32bitアーキテクチャ
CPUの世代はARMv7

古いDebianのパッケージでは、この命名を採用している。

CPUの世代に由来するもの

  • armv7l
末尾のlはlittle-endianのこと
32bitアーキテクチャ
  • armv8l
末尾のlはlittle-endianのこと
64bitアーキテクチャ

Raspberry Pi関連のパッケージではこの命名を採用している。

アーキテクチャに由来するもの

  • arm
32bitアーキテクチャ
A32命令セット
  • arm64
64bitアーキテクチャ
A64命令セット
ARMv8-A以降のCPUで利用可能

Plan 9、Linux、Go言語ではこの命名を採用している。 Debianも64bitのArmパッケージではarm64を使っている。

実行モード(命令セット)に由来するもの

  • aarch32
32bitアーキテクチャ
A32命令セット
  • aarch64
64bitアーキテクチャ
A64命令セット
ARMv8以降のCPUで利用可能

GCCやRHEL系パッケージではこの命名を採用している。

ARM? Arm?

公式のTermsでは、社名はArm表記だった。 CPUはv7までがARM表記で、v8以降はArmだろうか。