macOS利用の初心者Rubyプログラマは要確認！9つの開発環境チェックポイント

## はじめに：これは何？

僕は[フィヨルドブートキャンプ](https://bootcamp.fjord.jp/)でメンターをやっています。
これまでたくさんの生徒さんたちを見てきましたが、まあまあの頻度で「開発環境がおかしいせいで、不思議なトラブルに巻き込まれるケース」を見てきました。

具体的には「Appleチップなのに、間違ってIntel版のセットアップを行っているケース」です。
特にプログラミング初心者の人はネットの記事を見よう見まねでセットアップするので、本人も知らないうちにおかしなセットアップをしていることがあります。


この状態だと「ある程度は正常に動くが、どこかで謎なトラブルに巻き込まれて無限に時間を溶かしてしまう」という問題が発生しやすいです。

そこで、この記事ではmacOSでRubyを動かしているプログラミング初心者の方を対象に、開発環境のチェックポイントを9つ紹介します。

「AppleチップとかIntelとか、今まで全然気にしたことがなかった」という人は、特に危険かもしれません。
問題がなければ10分程度で終わるので、ぜひ最初から順にチェックしていってください！

## 1. CPUの確認
画面の左上にあるAppleメニューから「このMacについて」を選択

![Screenshot 2024-11-08 at 11.39.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/45ddf97d-bead-d6e4-0d70-8f9ce6754666.png)

「Apple M1〜M4」が表示されているようならAppleチップ。（Appleチップなら次へ進む）
Intel版Macの場合は本記事の対象外なのでここで終了。

## 2. 移行アシスタントでマシン移行しなかったか？
あなたが使っているMacは1台目ですか？それとも2台目以降ですか？
1台目（初めてのMac）なら問題ないので次に進んでください。

2台目以降なら前のマシンのデータはどうやって移行しましたか？
もし、[移行アシスタント](https://support.apple.com/ja-jp/102613)を使っていたら要注意です。
（移行アシスタントは使わず、ゼロから手作業でセットアップした人は大丈夫なので次に進んでください。）

ネットサーフィン用のパソコンなら移行アシスタントでも問題ないですが、開発環境はCPUに応じてコンパイルが必要なツール類がたくさんあります。
そのため、移行アシスタントを使っただけではうまく動かないケースも多いです。

![LWScreenShot-2022-07-30-at-13.10.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/84c18476-5a81-5f07-cf53-c7438bad7f0b.png)

移行アシスタントを使ってマシン移行した人は、このあとのチェックポイントでおかしな部分が見つかる可能性が高いです。
特に、1つ前のマシンがIntel Macで、そこから移行アシスタントでデータ移行した場合、Intel向けの開発環境がAppleチップMacにやってくるため、トラブルが発生する可能性が高くなります。

その都度対処していく方法もありますが、個人的にはいったんマシンを初期化してゼロから再セットアップすることを推奨します。
その方が「急がば回れ」で将来発生する謎なトラブルを回避しやすいはずです。

## 3. ターミナルで使用しているシェルの確認

ターミナルを起動して `echo $SHELL` を入力。
"zsh"ならOK。次へ進む。

```
$ echo $SHELL
/bin/zsh
```

"bash"なら本当にbashを使い続けるべきかどうかを検討する。
特に理由がないならzsh（もしくはその他のシェル）に移行しよう（具体的な手順はここでは割愛）。

### なぜzshに移行した方がいいの？
単純にmacOS標準のシェルがzshだからです。
さらに言えば、macOS標準のシェルがbashからzshに変わって5年以上経過し、現在多くの人がzshを利用しているからです。

https://www.infoq.com/jp/news/2019/07/macos-ditches-bash-for-zsh/

この記事もzshの利用を前提に書いていますし、この先トラブルが起きたりしたときももしかすると、「zshではなくbashだったから問題が発生した」とか「bashだから解決方法がわからない」ということがあるかもしれません。

「私はこだわりをもってbashを使っています」とか「シェル関連のトラブルが起きても自力で解決します」という強い意志がある人はbash（もしくはfish等の他のシェル）を使い続けてもいいと思いますが、特にこだわりがない人はzshに切り替えた方が無難です。

## 4. ターミナルのCPUモードを確認

ターミナルで `uname -m` を入力。
"arm64"が出ればOK。次へ進む。

```
$ uname -m
arm64
```

"x86_64"が出た場合はRosettaを利用していると思われる。
Rosettaを使わないようにしてターミナルを再起動し、もう一度 `uname -m` を実行してみる。

![Screenshot 2024-11-08 at 11.51.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/cdb3511c-e6d3-7bb6-4fde-d137cbc42f9e.png)

ただし、これまでRosettaを利用していた（＝Intel互換モードで動かしていた）のをRosettaなしに変更すると、いろいろと具合が悪くなる部分が出てくるかもしれないので注意。
自信がない場合は頼れる先輩プログラマに相談すること。

## 5. Homebrewの確認

ターミナル上で `which -a brew` を入力。
"/opt/homebrew/bin/brew" だけが表示されればOK。次へ進む。

```
$ which -a brew
/opt/homebrew/bin/brew
```

"/usr/local/bin/brew" が表示された場合はIntel版のHomebrewがセットアップされている。
先輩プログラマをつかまえてAppleチップ版に切り替える方法を相談しよう。

```
$ which -a brew
/usr/local/bin/brew
```

最初の行に "/opt/homebrew/bin/brew" が、2行目に "/usr/local/bin/brew" が表示されている場合は黄色信号。

```
$ which -a brew
/opt/homebrew/bin/brew
/usr/local/bin/brew
```

これはIntel版とAppleチップ版の両方がインストールされていて、PATHの設定でAppleチップ版を優先的に使うようになっている状態。
どこかで予期せぬトラブルが起きるかもしれないため、先輩プログラマをつかまえてIntel版をきれいさっぱり削除する方法を相談しよう。

## 6. brew doctorの実行

ターミナル上で `brew doctor` を実行。
"Your system is ready to brew." が表示されれば問題なし。次へ進む。

```
$ brew doctor
Your system is ready to brew.
```

警告（Warning）が表示された場合は、メッセージをよく読んで対応すべきかどうかを検討する。
以下は警告が表示される例。

```
$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: Some installed casks are deprecated or disabled.
You should find replacements for the following casks:
  skitch
```

理想は警告が完全になくなって "Your system is ready to brew." が表示されることなので、なるべく警告はなくすようにしたい。
警告の消し方がわからない場合は先輩プログラマに相談すること。

## 7. rbenv-doctorの実行

Rubyのバージョン管理ツールとしてrbenvを使っている場合は、ターミナル上で下記コマンドを実行する。

```
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
```

以下は正常な実行結果。

```
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /opt/homebrew/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /opt/homebrew/bin/rbenv-install (ruby-build 20240319)
Counting installed Ruby versions: 18 versions
Auditing installed plugins: OK
```

実行結果のチェックポイントは以下の通り。

- "Checking for rbenv shims in PATH"の結果がOKか？
- "Auditing installed plugins"の結果がOKか？
- "Checking for \`rbenv' in PATH"や"Checking \`rbenv install' support"に表示されるパスがIntel版Homebrewのパスになっていないか？（"/usr/local/Cellar"や"/usr/local/bin"みたいなパスが見えたらNG）
- "Checking for `rbenv' in PATH"が表示されるのは1行だけか？（2行以上表示された場合は、複数のrbenvがインストールされている）
- その他、怪しいエラーや警告が出ていないか？

すべて問題なしなら次へ進む。
実行結果におかしな点やよくわからない点があれば、先輩プログラマをつかまえて相談すること。

## 8. VS Codeの確認
VS Codeをインストールしている場合は、VS Codeのターミナル内で `uname -m` を入力。
"arm64"が表示されればOK。

![Screenshot 2024-11-08 at 12.26.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/b352e429-3d5c-a160-e1f9-84449f7eefd0.png)

"x86_64" が表示された場合は、Intel版のVS Codeをインストールしている。
Intel版をアンインストールし、Appleチップ版をインストールし直すこと。

https://code.visualstudio.com/download

![Screenshot 2024-11-08 at 12.29.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/7ac4b7e2-ff36-4d5c-d4fb-e6e6dde14ed0.png)

## 9. （もし可能なら）`~/.zshrc` と `~/.zprofile` を見てもらう
もし身近に頼れる先輩プログラマがいるなら、自分のマシンの `~/.zshrc` と `~/.zprofile` をレビューしてもらおう。

```
$ cat ~/.zshrc
$ cat ~/.zprofile
```

熟練者が見ると「なんでこんなことしてるの？」とか「この設定はここに入れない方がいいよ」とか「まったく同じ設定がこっちにもあるよ」みたいなツッコミどころがたくさん見つかるかも？

## まとめ
というわけで、この記事ではmacOSを使っている初心者Rubyプログラマが確認しておきたい、9つの開発環境チェックポイントを紹介してみました。

クリーンでトラブルフリーな開発環境でプログラミングしていきましょう！

### PR:フィヨルドブートキャンプなら「頼れる先輩プログラマ」がサポートしてくれます！
本記事では何かに付けて「先輩プログラマに相談しよう」という話を書きました。

実はこの記事に書いた内容は、フィヨルドブートキャンプの学習カリキュラムの一部として提供している内容です。
生徒さんの開発環境に問題がないかどうかは、頼れる先輩プログラマであるメンターがチェックしています。

もちろん、開発環境のチェックのみならず、プログラミング学習関する様々なことをメンターはサポートしています。

もし身近に「頼れる先輩プログラマ」がいないなら、フィヨルドブートキャンプをチェックしてみてください😃

https://bootcamp.fjord.jp/