# M1 macの環境構築メモ M1macの環境構築をしたのでよかったら参考にしてください でもここから先変わる部分もあるかもなのでなんか上手くいかなかったら教えてください `$`から始まるコマンドは`$`除いてターミナルで打ってください)(ターミナルで打つコマンドですよっていう目印にしているだけなので) ## お品書き - Homebrew - anyenv - rbenv - ruby(3.0.1, 2.6.5) - nodenv - node(14.17.0, 12.14.0) - yarn - MySQL(5.7) ## Xcodeをインストール `$`を除いて実行してください `$ xcode-select --install` ## Homebrewを入れよう HomebrewはmacOS用のパッケージ管理ツールです Homebrewを経由して色々なパッケージをインストールすると管理が楽になります #### `$`マークは除いて実行してください下のコマンドは長すぎて改行されてるかもだけど1行のコマンドです https://brew.sh/index_ja 上記にアクセスしてインストールコマンドをターミナルにコピペしてください 多分こんなコマンド(公式サイトにいって最新のコマンドを確認したほうがいいです) `$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` 実行結果 ![](https://i.imgur.com/a5eAqI9.png) ### NextStepに指示が出てれば以下を実行してください #### 名前のところが人それぞれ変わるので必ず自分のところにでたものをコピペして実行してください 以下コマンドのイメージ ``` $ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/yourname/.zprofile $ eval "$(/opt/homebrew/bin/brew shellenv)" $ brew help ``` ![](https://i.imgur.com/dJTB7Jn.png) ### anyenvを入れよう #### anyenvってなんなの? anyenvはRubyのバージョン管理ツールのrbenvやNode.jsのバージョン管理ツールのnodenvなどを管理できる便利ツールです anyenvを使ってrbenv(rubyのバージョン管理ツール)やnodenv(nodeのバージョンを管理するツール)をインストールして使います。 便利なので是非活用してください #### `$`マークは除いて1行ずつ実行してください ``` $ git clone https://github.com/anyenv/anyenv ~/.anyenv $ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(anyenv init -)"' >> ~/.zshrc $ exec $SHELL -l $ ~/.anyenv/bin/anyenv init ``` 上記のコマンドが打ち終わったら `$ cat ~/.zshrc` を打って(ファイルの中身を出力するコマンドです) ``` export PATH="$HOME/.anyenv/bin:$PATH" eval "$(anyenv init -)" ``` この2行が出力されるかあるか確認してみてください ### anyenv-updateを入れよう #### anyenv-updateってなに? anyenvで管理しているバージョン管理ツールがそれぞれインストール出来る言語のバージョン一覧を簡単に最新に出来るツールです #### 先頭の`$`マークは除いて1行ずつ実行してください ``` $ mkdir -p $(anyenv root)/plugins $ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update ``` ## rbenvを使ってRubyを入れよう Rubyをインストールするためにrbenvというrubyのバージョンを管理するツールを入れます `$ anyenv install rbenv` `$ exec $SHELL -l` `$ rbenv install 3.0.3` `$ rbenv global 3.0.3` `$ rbenv rehash` ### 古いバージョンのRubyを入れようとするとエラーが起きてしまう時があります そういう時は魔法の呪文 `RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC`を`rbenv install`の前につけると上手く行くかもしれません ### バージョン2.6.5を入れるときの例(インストールする必要がなければ実行しなくて大丈夫です) `RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC rbenv install 2.6.5` ![](https://i.imgur.com/Ks061bx.png) ## nodenvを使ってnodeを入れよう `$ anyenv install nodenv` `$ exec $SHELL -l` `$ nodenv install 16.13.0` `$ nodenv global 16.13.0` ![](https://i.imgur.com/cPYPuAH.png) ### 古いバージョンのnodeを入れようとするとエラーが起きてしまうことがあります アーキテクチャを一瞬変えて元に戻すことで対応出来ます(あんまり推奨しません) ``` $ arch -x86_64 /bin/zsh $ nodenv install 12.14.0 $ arch -arm64 /bin/zsh ``` ## yarnをインストールしよう yarnはnode.jsのパッケージを管理するツールです #### `$`マークは除いて実行してください `$ brew install yarn ` これだけ ## MySQLをインストールしよう `$ brew install mysql@5.7` ![](https://i.imgur.com/iYp4ni3.png) ``` If you need to have mysql@5.7 first in your PATH, run: echo 'export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc ``` みたいなのが書いてあったらそこをコピペして実行する `$ echo 'export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc` 起動確認 `$ mysql.server start` を打って起動確認する`SUCCESS`になってたらOK! ![](https://i.imgur.com/1V0p93T.png) ## ターミナルをおしゃにしよう これを参考に https://kenchasonakai.hatenablog.com/entry/20210424/1619265489 文字だけ変えたい場合はこちらでも `~/.zshrc`に以下のコードを追加 ``` # git ブランチ名を色付きで表示させるメソッド function rprompt-git-current-branch { local branch_name st branch_status if [ ! -e ".git" ]; then # git 管理されていないディレクトリは何も返さない return fi branch_name=`git rev-parse --abbrev-ref HEAD 2> /dev/null` st=`git status 2> /dev/null` if [[ -n `echo "$st" | grep "^nothing to"` ]]; then # 全て commit されてクリーンな状態 branch_status="%F{green}" elif [[ -n `echo "$st" | grep "^Untracked files"` ]]; then # git 管理されていないファイルがある状態 branch_status="%F{red}?" elif [[ -n `echo "$st" | grep "^Changes not staged for commit"` ]]; then # git add されていないファイルがある状態 branch_status="%F{red}+" elif [[ -n `echo "$st" | grep "^Changes to be committed"` ]]; then # git commit されていないファイルがある状態 branch_status="%F{yellow}!" elif [[ -n `echo "$st" | grep "^rebase in progress"` ]]; then # コンフリクトが起こった状態 echo "%F{red}!(no branch)" return else # 上記以外の状態の場合 branch_status="%F{blue}" fi # ブランチ名を色付きで表示する echo "${branch_status}($branch_name)%f" } # プロンプトが表示されるたびにプロンプト文字列を評価、置換する setopt prompt_subst # プロンプトの右側にメソッドの結果を表示させる export PS1="%~ `rprompt-git-current-branch` %B%F{green}>%f%F{yellow}>%f%F{red}>%f%b" ```