M1 Mac(Apple Silicon)でMacPortsを使う

2020.12.11
2020.12.12
M1 Mac(Apple Silicon)でMacPortsを使う

Macのパッケージマネージャーの1つ、MacPortsをApple SiliconのMac(MacBook Air)に入れてみます。

HomebrewとMacPortsの違い

HomebrewもMacPortsもどちらもMacのパッケージマネージャーです。


Apple Siliconが出て大きな違いとして、
2020/12/11現在MacPortsだとarm64というApple Silicon向けのものが提供されているパッケージはApple Silicon向けのものを、
提供されていないパッケージはx86_64と呼ばれるIntel向けのものをDLしてくれる、という機能があります。



そのため「このパッケージてもうApple Silicon対応してるんだっけ?」という事を調べたり意識したりしなくて良くなる、という利点があります。

MacPortsをインストールする

前準備

XcodeのインストールとXcode Command Line Toolsが必要になります。

私は先にHomebrewを入れてその際にインストールしたので良ければこちらを参考にしてみて下さい。

MacPortsをダウンロードする

MacPorts公式ページにいき、 macOS Big Sur v11 をDL。



DLしたpkgファイルをダブルクリックしてインストール。

pkgのインストールまで完了したOKです!

MacPortsを使う

MacPortsを使う場合portというコマンドを使います。


portというコマンド自体、そしてそのportを使ってインストールしたパッケージは
/opt/local/bin/の中に入っています。


jqpecoインストール後に見てみると、portpecoがいるのが分かりますね!



そのため先に/opt/local/bin/に対してPATHを通します。

PATHを通す

~/.zshrc
export PATH="/opt/local/bin:$PATH"

ターミナルを再起動して確認してみると、

$ port -v
MacPorts 2.6.4
Entering shell mode... ("help" for help, "quit" to quit)

使えるようになってますね!

パッケージをインストールする

試しにjqという既にarm64版が提供されているパッケージをインストールしてみます。

portはhomebrewと比べて以下のような特徴があります。

  • sudoが必須
  • -fを付けてsudo port install -f jqのようにする事で依存関係のあるパッケージインストール時の[Y/n]が表示されなくなる
% sudo port install jq
・・・
The following dependencies will be installed:  oniguruma6
Continue? [Y/n]: 
・・・
--->  Attempting to fetch jq-1.6_3.darwin_20.arm64.tbz2 from https://kmq.jp.packages.macports.org/jq
--->  Attempting to fetch jq-1.6_3.darwin_20.arm64.tbz2.rmd160 from https://kmq.jp.packages.macports.org/jq
--->  Installing jq @1.6_3
--->  Activating jq @1.6_3
--->  Cleaning jq
--->  Scanning binaries for linking errors
--->  No broken files found.
--->  No broken ports found.

途中でfetchしてインストールしているのが「arm64」と書かれてますね!

それだけで感動する。笑



arm64版がインストール出来ているか確認します。

# インストール先の確認(MacPortsのインストール先になっている)
$ which jq
/opt/local/bin/jq

$ lipo -archs $(which jq)  
arm64

arm64版のインストールが出来ました!



まだarm64版が提供されていないパッケージはどうだろう?と思い、試しにpecoをインストールしてみました。

$ sudo port install -f peco

# インストール先の確認
$ which peco
/opt/local/bin/peco

$ lipo -archs $(which peco)
x86_64

arm64版が提供されていないものは無事Intel版(x86_64)がインストール出来てますね!




インストールしたコマンドやアプリがどちらを使っているか確認する方法については↓の記事に詳しく書きました!

おすすめ