Rosettaも使う人のM1 Macの環境整備Step1

##はじめに
M1 Macを買ったので最初にやった環境整備を書いていきます。
ObsPy等の地球物理系のモジュール、kerasやtensorflowを実行する環境を作っていきます。
現状Rosettaを使わないと仕事ができなさそうなので、両方を使える環境を構築していきます。
随時更新予定。

マシンスペック：
MacBook Pro (13-inch, M1, 2020)
チップ　Apple M1
OS MacOs BigSur 11.1

参考にしたサイト：
1. https://oku.edu.mie-u.ac.jp/~okumura/macosx/m1.html
2. https://zenn.dev/osuzuki/articles/380be0f682d72d
3. https://zenn.dev/ik11235/scraps/17d44ec45ea8f7
4. https://www.usagi1975.com/202104172257/

##arm64なのかx86_64なのか問題
M1 MacではARMベースのApple独自チップが搭載されていて、今までのIntel Macで実行できていたモジュールが実行できないという状況がままあります。そのような問題を解決してくれるのがrosettaなのですが、それを使うとIntel Macと同じような環境を構築することができます。そのまま使うとアーキテクチャとしてはarm64, Rosettaを使うとx86_64となります。armとRosettaの両方の環境に対してそれぞれ、miniforge3とmanbaforgeをインストールします。

miniforge3&mambaforgeの.shファイルをダウンロードします。
https://github.com/conda-forge/miniforge

arm64の環境で

```
bash Miniforge3-MacOSX-arm64.sh
```

x86_64の環境で

```
bash Mambaforge-MacOSX-x86_64.sh
```

そして、使用するアーキテクチャによって有効にするパス名を変更できるようにします。
プロンプトはarmの時にarm, x86_64の時にintelと表示されるようにしました。
今までbashで粘っていましたが、今回.zshに初挑戦です。これでターミナル起動時の警告が消えます。
.zshrcの中身は参考サイトを見ながら少し変えました。$hogeにはユーザーネームが入ります。

```
if [[ $ARCH == 'arm64' ]]; then
    PROMPT="[arm] %m:%~%# "
else
    PROMPT="[intel] %m:%~%# "
fi

#conda
if [[ $ARCH == 'arm64' ]]; then
   # arm64 => Miniforge3
   # >>> conda initialize >>>
   # !! Contents within this block are managed by 'conda init' !!
   __conda_setup="$('/Users/$hoge/miniforge3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
   if [ $? -eq 0 ]; then
      eval "$__conda_setup"
   else
      if [ -f "/Users/$hoge/miniforge3/etc/profile.d/conda.sh" ]; then
        . "/Users/$hoge/miniforge3/etc/profile.d/conda.sh"
      else
        export PATH="/Users/$hoge/miniforge3/bin:$PATH"
      fi
   fi
   unset __conda_setup
   # <<< conda initialize <<<

else

   # x86_64 => Mambaforge
   # >>> conda initialize >>>
   # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$('/Users/$hoge/mambaforge/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
    if [ $? -eq 0 ]; then
        eval "$__conda_setup"
    else
        if [ -f "/Users/$hoge/mambaforge/etc/profile.d/conda.sh" ]; then
            . "/Users/$hoge/mambaforge/etc/profile.d/conda.sh"
        else
            export PATH="/Users/$hoge/mambaforge/bin:$PATH"
        fi
    fi
    unset __conda_setup
    # <<< conda initialize <<<
fi

```

##ターミナルの設定（Rossetaを使用できるようにする）
まず何もせずにターミナルを開いて

```
uname -m
```
とすると

```
amr64
```
と表示されます。一旦ターミナルを閉じて、ターミナルのアイコンを右クリックして情報を見るとRosettaを使用して開くという項目があるので、それにチェックを入れて起動するとインテルMacと同じように使うことができます。
<img width="300" alt="terminal" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615412/78cebc6d-d220-e3a7-8fd5-3fcb99a78241.png">
もう一度

```
uname -m
```
すると今度は

```
x86_64
```
と表示されます。

アーキテクチャの切り替えは、一度x86_64を使ったあとだと、例えばx86_64からarm64だと、

```
arch -arm64 bash
```

とすれば大丈夫です。

##Homebrewのインストール

arm64の場合

```
sudo mkdir /opt/homebrew
sudo chown -R $(whoami) /opt/homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C /opt/homebrew
```
x86_64の場合は通常通りHomebrewのページのコマンドを使えば良いです。

.zshrcにパスを追加します。

```
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
if [[ $ARCH == 'arm64' ]]; then
    PATH=/opt/homebrew/bin:/opt/homebrew/sbin:$PATH
fi
```

[Step2ではObsPyをインストール](https://qiita.com/PenguinHakese/items/2ecd7b4061eb445a4338)します。