ロゴテキスト ロゴ

    M1 Mac(Apple Silicon)でMacPortsを使う

    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。

    MacPortsの公式サイトからmacOs Big Sur v11を選択してダウンロード


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

    MacPortsのインストールが完了した

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

    MacPortsを使う

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


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


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

    /opt/local/binの中身、portやその他のコマンド群が入っている


    そのため先に/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)がインストール出来てますね!




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

    プロフィールの背景画像 プロフィール画像
    Yuki Takara
    都内でフリーランスのエンジニアをやってます。フロントとアプリ開発メインに幅広くやってます。