アルパカ三銃士

〜アルパカに酔いしれる獣たちへ捧げる〜

M1 Mac を購入して arm64 縛りでインストールしたもの (更新中)

基本的に郷に入れば郷に従いたいので arm64 のバイナリを扱うようにする。homebrew はここに従って arm64 版のみインストールした。

インストールしたバイナリが arm64 かどうかを確認するために下記のコマンドを使う。

$ lipo -archs $(which command)

Go

arm64 の Go をインストールするために仕方なく x86_64 の Go のバイナリをここからインストールする。

golang.org

pkg なのでいい感じに設置してくれる。その後 go get golang.org/dl/gotip をする。これで gotip コマンドが使えるようになる。

このコマンドを使って arm64 の Go を手に入れる。

GODEBUG=asyncpreemptoff=1 GOARCH=arm64 gotip download を行うことで master の Go をビルドしてくれる。実行中に ctrl + t を押すと cpu 使用率などを表示してくれる。終わったら sudo vi /etc/paths.d/goで次のように編集する。

$HOME/sdk/gotip/bin/darwin_arm64

/etc/paths.d/<command> のファイルを作ると良い感じに $PATH へシェル関係なく追加してくれるらしい。

これで arm64 の Go が使えるようになるので sudo rm -rf /usr/local/gox86_64 の Go を削除する。公式で正式に配布されたら自分で再度インストールすれば良いと思う。それまではこれを使う。

この Go を使ってこれらを go get した。

  • direnv
  • Neo-Cowsay
  • fzf
  • ghq

NodeJS

brew install -s nodebrew で nodebrew をインストールした。vim $(which nodebrew)system_info というサブルーチンを次のように編集した。

sub system_info {
    my $arch;
    my ($sysname, $machine) = (POSIX::uname)[0, 4];

    if  ($machine =~ m/x86_64|arm64/) {
        $arch = 'arm64';
    } elsif ($machine =~ m/i\d86/) {

保存して nodebrew compile v15.3.0 をすれば node を arm64 でコンパイルしてくれる。v15.3.0 から arm64 で動かせるように変更が入ったっぽい。v8 の cherry-pick のコミットログがそれに当たる。

ビルドが完了したら nodebrew use v15.3.0 をすると arm64 の node が動く。

Rust

rust はここのコメントに書いてる通りに nightly build として 1.49 をインストールすればビルドターゲットとして aarch64-apple-darwin を指定することが可能になる。

github.com

github.com

インストールしたもの

  • ripgrep
  • exa

追記 12/4

OCaml

この PR がマージされれば brew install ocaml でインストール可能になるとのこと。しかし待てないので PR の branch をインストールする。

github.com

まずは brew edit ocaml で次のように編集する。

- head "https://github.com/ocaml/ocaml.git", branch: "trunk"
+# head "https://github.com/ocaml/ocaml.git", branch: "trunk"
+  head "https://github.com/EduardoRFS/ocaml.git", branch: "4.10+backport"

brew install --HEAD ocaml でインストールして解決した。インストール後は再び brew edit で formula をちゃんと元に戻す。

GPG

gpg は GitHub 上での commit で署名をつけるために活用している。詳しくはこちら

codehex.hateblo.jp

インストールに依存しているもので libgcrypt があるがこれでコケてしまう。正常にライブラリは機能するが brew のテストでコケてしまうとのこと。下記のコメントの通り ignore を選択してインストールをして gpg をインストールすることに成功した。パッチはここで修正されている。マージされて brew からインストールできるようになったら再インストールする。

github.com

進捗あれば更新します。