🍎

Apple Silicon Mac環境構築メモ

2020/11/25に公開

はじめに

M1搭載Macに関しては、IT・ガジェット系メディアで連日記事が上がっており、ある種お祭りになっています。
私も先日M1チップ搭載Mac Book Airを購入し、個人的に満足が出来る開発環境が出来たため、その手順を共有したいと思います。

なるべくCLIベースで環境構築しています。
こういう手順で各種ツールが動くんだ〜とゆるく読んで頂けることを想定しています。

以下、記事を読む上での注意点です。ご了承下さい。

  • 発売日周辺に動作確認した手順ゆえ、閲覧時期によっては多少古い可能性があります
  • 個人で作成したインストールスクリプトを元に、記事にしやすいよう順番を組み替えて記載しています。記事上で不明点がありましたら、github.com/shuntaka9576/dotfilesを参考にしてください
  • 「どのような理由で記載した手順になったのか」に関しては、説明が出来ませんでした。これは私の力不足によるものです。申し訳ございません。
  • zshやneovimのプラグイン構成といった内容は本記事には含まれません

自分の作業環境

普段neovimを使って、TypeScript(node)を書いています。

環境構築手順

SafariからインストーラーをDLしてインストール

なるべくCLIと書きつつ、Safari経由ですいません..
MacPortsやbrew経由で上手く導入することできなかったツールを本項でインストールします

MacPortsのインストール

MacPortsから、macOS Big Sur v11をダウンロードし、インストール

Nodeのインストール

node officialから、v14.15.1をダウンロードし、インストール

ターミナル経由のインストール

ここからは基本ターミナルを利用して、環境構築をします

Command line tools for Xcodeのインストール

gitを使う手順がありますので、インストール

xcode-select --install

MacPorts経由でインストール

export PATH=/opt/local/bin:$PATH # MacPortsのPAHTを通す

sudo port install -f tmux
sudo port install -f go
sudo port install -f fzf
sudo port install -f wget
sudo port install -f fontforge
sudo port install -f tmux-pasteboard

neovim, xpanesをインストール

本手順では、neovimのx86バイナリを落としてパスを通します
(Build for arm64 Macsを見る限り、M1上でビルド出来そうです)
xpanesは、wgetで落としてきます

# install nvim
wget https://github.com/neovim/neovim/releases/download/nightly/nvim-macos.tar.gz
tar xzvf nvim-macos.tar.gz
rm nvim-macos.tar.gz

# install xpanes
wget https://raw.githubusercontent.com/greymd/tmux-xpanes/v4.1.2/bin/xpanes -O ./xpanes
sudo install -m 0755 xpanes /usr/local/bin/xpanes
rm ~/xpanes
# .zshrc
if [ -d $HOME/nvim-osx64 ]; then
  export PATH="$HOME/nvim-osx64/bin:$PATH"
fi

brewをインストール

brew公式のマニュアルインストール方法を参考にbrewをインストールします

mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
sudo mv -f homebrew /opt/homebrew
rm -rf homebrew

よく利用するアプリをインストール

export PATH=/opt/homebrew/bin:$PATH # brewのPATHを通す
brew cask install google-chrome
brew cask install iterm2
brew cask install gyazo
brew cask install slack
brew cask install visual-studio-code
brew cask install drawio

npm製ツールをインストール

sudo npm install -g vue-language-server
sudo npm install -g javascript-typescript-langserver
sudo npm install -g dockerfile-language-server-nodejs
sudo npm install -g bash-language-server
sudo npm install -g markdownlint
sudo npm install -g typescript
sudo npm install -g typescript-language-server
sudo npm install -g yarn
sudo npm install -g jwt-cli
sudo npm install -g reload
sudo npm install -g jsondiffpatch
sudo npm install -g uuid-cli

go製ツールをインストール

export GOPATH=~/go
go get github.com/x-motemen/ghq
go get github.com/mrtazz/checkmake
go get github.com/mattn/memo
go get github.com/jesseduffield/lazygit
go get github.com/knqyf263/pet
go get github.com/mvdan/sh/cmd/shfmt
go get github.com/github/hub

何回かRosetta 2に起因すると思われるエラーを踏みましたが、何回か実行したら入りました。

neovim関連

deinのインストール

sudo chmod o+w ~/.cache

# install dein
curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh >~/installer.sh
sh ~/installer.sh ~/.cache/dein
rm ~/installer.sh

フォントのインストール

export PATH=$HOME/go/bin:$PATH # 前述でインストールしたghqを利用するためパスを通します
ghq get https://github.com/ryanoasis/nerd-fonts.git # neovimで利用するnerd-font
ghq get https://github.com/Karmenzind/monaco-nerd-fonts.git # iTermで利用するフォント
ghq get https://github.com/dracula/iterm.git # iTermのテーマ

cp $HOME/repos/github.com/Karmenzind/monaco-nerd-fonts/fonts/Monaco\ Nerd\ Font\ Complete\ Windows\ Compatible.otf $HOME/Library/Fonts # iTermで選択できるように、ファイルを移動
fontforge $HOME/repos/github.com/ryanoasis/nerd-fonts/font-patcher $HOME/Library/Fonts/Monaco\ Nerd\ Font\ Complete\ Windows\ Compatible.otf -w --fontawesome --fontawesomeextension --fontlinux --octicons --powersymbols --pomicons --powerline --powerlineextra --material --weather # 一部足りないフォントがあるためパッチを当てる

Rust製ツールをインストール

rustupのインストール

@chikoski様のApple Silicon を使った Mac に Rust をインストールするにはを参考にしています。非常に助かりました。
rustupをマニュアルインストールします
対話式でdefault toolchainnightlyを指定します

arch --x86_64 sh <(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs )

ツールのインストール

export PATH="$HOME/.cargo/bin:$PATH"
cargo install ripgrep
cargo install exa
cargo install fd-find
cargo install bat

以上となります

最後に

最初はハマりましたが、思っていた以上にRosseta 2が優秀で、様々なアプリやCLIが動作することを確認できました。
neovimでTypeScriptを書く分にはあまり問題ないと感じています。

そのほか感じたこと

  • 新機能ではないですが、Macの環境構築時、1passwordのシークレットキーの転記が面倒だと感じていましたが、iPhoneとのクリップボード同期を行うことで、スムーズに認証でき感動しました。
  • 評判通りスリープ解除は爆速。Apple Eventでフェデリギがドヤ顔していた理由が分かりました。今思うとApple Event後の視聴者の反応は個人的にかなり懐疑的だったな...と。信じてイベント後すぐポチりましたが、正解でした。

Discussion