地震学研究室の学生利用Macのセットアップ（2024年版）

改訂：2024-08-02 Xcodeのインストールのところで「Apple Store」と書いたのを「App Store」に修正。

# 前提
- 新規で購入したMac (Apple Silicon) のセットアップ
- 学生が地震研究の卒論や修論で利用する
- 次のソフトウェアをインストール
    - アンチウイルスソフト
    - Microsoft Office
    - Xcode（不要かも）
    - Homebrew
    - mi（エディター）
    - XQuartz
    - gfortran
    - Generic Mapping Tools (GMT)
    - WIN System（地震波形データの処理システム）
    - Seismic Analysis Code (SAC)
- そのほかのソフトウェア（python, MATLABなど）は必要になったときに入れる

# OSの更新
「設定」－「一般」－「ソフトウェアアップデート」で更新を確認、更新があれば実行する。App Storeで更新されるものも更新しておく。

# アンチウイルスソフトをインストール
大学で契約しているアンチウイルスソフトをインストールする。

# Microsoft Officeのインストール
大学で契約しているライセンスでインストールする。アップデートもしておく。

# Xcodeのインストール
App Storeでインストールする。
<!---
次でインストールされるXcode Command Line Toolsがあれば不要かもしれいないが、念のため（あとのWIN Systemのインストールで必要かもしれない）。
--->

# Homebrewのインストール（Xcode Command Line Toolsのインストールを含む）
Homebrewのウェブサイト
https://brew.sh/ja/
の指示に従う。Xcode Command Line Toolsはこの段階でインストールされる。

# miのインストール 
Homebrewでインストールできる。

```
brew install --cask mi
```

# XQuartzのインストール
Homebrewでインストールできる。
```
brew install --cask XQuartz
```

学生のアカウント作成時に、自動的にPATHを通したい（.zshrcの編集を最小限にしたい）ので、path-helper ユーティリティーを利用する。次の内容で /etc/paths.d/50-X11 を作成する

コマンド：
```
sudo vi /etc/paths.d/50-X11
```
ファイルの内容：
```
/opt/X11/bin
```

# gfortranのインストール
Homebrewでgccをインストールするとgfortranもインストールされる。
```
brew install gcc
```

# Generic Mapping Tools (GMT)のインストール
GMTはシェルスクリプトで地図やグラフを描くソフトウェアである。
https://www.generic-mapping-tools.org/
地球物理系（地震学を含む）では広く使われている。当研究室では卒論・修論でも使う。

Homebrewでインストールできる。
```
brew install gmt
```

GMTをインストールしたときに最後のほうに関連するパッケージのインストールも示されるので、それも入れておく（必須ではなさそう）。
```
brew install ghostscript ffmpeg graphicsmagick
```

# WIN Systemのインストール
WIN Systemは多チャンネルの地震波形データを取り扱うための処理システムである。
https://wwweic.eri.u-tokyo.ac.jp/WIN/

学生の研究ではP波、S波の読取りと震源決定でよく使われる。

上記ページからソースパッケージをダウンロードしてコンパイルする。

まずダウンロードしたファイルを展開して、展開後にできたディレクトリーに移動する。
```
tar -xvf WIN_pkg-3.0.11.tar
cd WIN_pkg-3.0.11
```

そのままではコンパイルでエラーが出る。次の編集が必要になる（ひっかかったところでその都度対処するのが効率が良いかもしれない）。

- src/sts.c の関数ctrlcの戻り値の型を指定をする
ctrlc()→void ctrlc()

-  tools/TKY2JGDにあるソース・ファイルで、関数に戻り値の型がないものは型をつける。また、一部のソース・ファイルには#include \<string.h\>を加える。

ファイル：ch2tky2jgd.c, final2tky2jgd.c, map2tky2jgd.c
main()→int main()

ファイル：delta.c
#include \<string.h\>を追加
pltxy(...) →int pltxy(...)
main(argc,argv)→int main(argc,argv)

ファイル：tky2jgd2ch1.c, tky2jgd2ch2.c, tky2jgd2final.c, tky2jgd2map.c
#include \<string.h\>を追加
main()→int main() （tky2jgd2ch2.cではmain(argc,argv)→int main(argc,argv)）

コンパイルでは、./configureでインストール先を/opt/winに変更している（デフォルトでは/usr/local/win）。ここは好みで。
```
./configure --prefix=/opt/win
make
make check
```

動作確認はxterm上で行う。
```
cd etc
../src/win 991109.064607
```

動作が確認出来たらインストールする。
```
sudo make install
```

次の内容で /etc/paths.d/50-win を作成する。
コマンド
```
sudo vi /etc/paths.d/50-win 
```

ファイルの内容
```
/opt/win/bin
```


# Seismic Analysis Code (SAC)のインストール
SACは地震波形データを解析するソフトウェアである。
http://ds.iris.edu/ds/nodes/dmc/software/downloads/sac/

2024年現在、正式版ではApple Silicon用バイナリーがない（Intel Mac用のバイナリーはある）。Apple SiliconのMacでSACを動かすには、次の選択肢が考えられる。
1. Intel Mac用のバイナリーをダウンロードして、Intel Mac用バイナリーを動かすためにRosetta 2をインストールして動かす
1. ソースファイルをダウンロードして、自分でコンパイルする
1. Computer Program in Seismologyに附属している、派生版のSAC (gsac) を導入する（要コンパイル） 
1. George Helfrichさんが作成した派生版のMacSACを利用する（ただしこれもApple Silicon用バイナリーがなさそうなのでおそらくRosetta 2が必要）

コンパイルではまる可能性も考えて、1.から試す。

上記ウェブサイトでパッケージをダウンロードする。このソフトウェアは輸出制限がかかっているので、ウェブフォームで所属先などの情報を入力・送信する必要がある。審査に通れば、メールでダウンロード方法の案内がある。それにしたがってダウンロードする。

念のため、インストール方法も詳しくは書かない。ここでは/opt/sacにインストールした。

つぎにRosetta 2をインストールする。次のウェブページ
https://www.famlog.jp/article/4675
を参考に、コマンドラインでインストールする。

```
sudo softwareupdate --install-rosetta
```
これでsacが動いたので、当面これで様子を見る。上記選択肢2.-4.については、今回試していないので、うまくいくかどうかは分からない。

初期設定ファイル /opt/sac/bin/sacinit.sh のデフォルトディレクトリー（環境変数 SACHOME）を編集する。
```
#export SACHOME=/usr/local/sac
export SACHOME=/opt/sac
```
そののち、~/.zshrc に次の行を加える。
```
source /opt/sac/bin/sacinit.sh
```
学生のアカウントからコピーできるように、共有ディレクトリー /Users/Shared に.zshrcをコピーしておく。
```
cp ~/.zshrc /Users/Shared
```

これで終了。