Rubyの環境構築でRosettaに沼った話


## はじめに
こんにちは、あっぴー(@super-appy)と申します。
プログラミングスクロールに通ってRailsを学習しています。
初学者ですが、宜しくお願い致します。

## 記事のきっかけ
先日、カリキュラムがひと段落し、ミニアプリを作りました！
カリキュラム自体はDockerを使っているのですが、今回はローカルでRubyの環境構築を試みました。途中まではスムーズだったのですが、エラーに遭遇。スクールの先輩に助けていただきながら、なんとかアプリ完成まで辿り着きました。（ミニアプリの話はまた後日、記事にできたらと思います）

個人的にかなり沼だったので、今後誰かの役に立てたらと思って記事にすることにしました。

## 環境
チップ：Apple M1
macOS：Ventura 13.5.2


## こんなエラーに遭遇
よし！ `rbenv install` だ！！あれ、エラーだ...
(エラーが長いので、困っている方以外は読み飛ばし推奨です)
```bash
＄ rbenv install 3.2.2             
To follow progress, use 'tail -f /var/folders/y8/yy7sdbl53rdbjkz5897qflpm0000gq/T/ruby-build.20231004174757.52148.log' or pass --verbose
Downloading openssl-3.1.2.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539
Installing openssl-3.1.2...
Installed openssl-3.1.2 to /Users/AYAKA/.rbenv/versions/3.2.2

Downloading ruby-3.2.2.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz
Installing ruby-3.2.2...
ruby-build: using libyaml from homebrew

BUILD FAILED (macOS 13.5.2 using ruby-build 20230919)

Inspect or clean up the working tree at /var/folders/y8/yy7sdbl53rdbjkz5897qflpm0000gq/T/ruby-build.20231004174757.52148.LHrvPr
Results logged to /var/folders/y8/yy7sdbl53rdbjkz5897qflpm0000gq/T/ruby-build.20231004174757.52148.log

Last 10 log lines:
	Check ext/psych/mkmf.log for more details.
*** Fix the problems, then remove these directories and try again if you want.
Generating RDoc documentation
/private/var/folders/y8/yy7sdbl53rdbjkz5897qflpm0000gq/T/ruby-build.20231004174757.52148.LHrvPr/ruby-3.2.2/lib/yaml.rb:3: warning: It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
uh-oh! RDoc had a problem:
cannot load such file -- psych

run with --debug for full backtrace
make: *** [rdoc] Error 1
```

## やってみたこと
* エラーをコピペしてChatGPTに投げる
* エラーをGoogle検索(英語も多く、DeepL翻訳に助けられました)
* スクールに通ってる方への質問(たくさんの方に助けていただきました！)
* **スクール内の質問フォーム**

たくさんの記事を参考にしましたが、私の場合それでは解決に至りませんでした。
同じエラーが出ていても、解決方法が違うこともあるということを学びました。

最終的に、先輩に教えていただいたスクール内の質問フォームからスクールの講師の方が書かれた手順書を参考にし無事に環境構築を終えることができました！

さて、前置きは以上です。

一つずつ確認しながら、環境構築を進めていきましょう！！

:::note warn
Homebrewはインストールされている前提で進めます。
:::

## 1_プロセッサの確認
左上のリンゴマーク＞このMacについて＞チップ
M1もしくはM2だと **Apple silicon** です！
<img width="400" src="https://i.gyazo.com/17d0a3495e8bb366457b3a1dd8824f20.png">

## 2_アーキテクチャの確認
```bash
$ uname -m
=> arm64 #=> Apple Siliconならこちら
=> x86_64 #=> Intelチップならこちら
```

## 3_プリインストールされてるRubyのバージョンを確認

```bash
AYAKA@MacBook-Air ~ % ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.x86_64-darwin22]
```
`universal.x86_64-darwin22`とあり、Apple Siliconなのに、Intelチップ？となっています。

## 4_環境情報の確認
`brew --config` --は「-」半角ハイフン2つです。
```bash
AYAKA@MacBook-Air ~ % brew --config
HOMEBREW_VERSION: 4.1.14-23-gec5ad35
ORIGIN: https://github.com/Homebrew/brew
HEAD: ec5ad356a3f6e1ae9a5ad0708c6c1621523a2a8b
Last commit: 4 hours ago
Core tap JSON: 04 Oct 22:16 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_REPOSITORY: /opt/homebrew
HOMEBREW_CELLAR: /opt/homebrew/Cellar
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 8
HOMEBREW_SORBET_RUNTIME: set
Homebrew Ruby: 2.6.10 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: octa-core 64-bit westmere
Clang: 14.0.3 build 1403
Git: 2.39.2 => /Library/Developer/CommandLineTools/usr/bin/git
Curl: 8.1.2 => /usr/bin/curl
macOS: 13.5.2-x86_64
CLT: 14.3.1.0.1.1683849156
Xcode: N/A
Rosetta 2: true　
```

## 原因判明！Rosettaだった！

一番下の、`Rosetta 2 :true`　これが今回の原因でした。

Rosettaとは？
>Rosetta 2 を使えば、Apple シリコンを搭載した Mac でも、Intel プロセッサ搭載 Mac 用に開発された App を使えるようになります。

引用：https://support.apple.com/ja-jp/HT211861

記憶はないのですが、どこかで入れていたんでしょうね...
さて、Rosettaを使わなければよいということが分かったので、使わないように設定を変えていきます！

## 5_Rosettaを使わないようにする
アプリケーション＞ターミナル＞右クリックで情報を見る
**✅Rosettaを使うのチェックを外す！**

<img width="400" src="https://i.gyazo.com/7915fd708d0e57f257f5b7559b47d3c3.png">

## 6_ターミナルを再起動
再起動後、`ruby -v`を実行

```bash
AYAKA@MacBook-Air ~ % ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]
```

`universal.x86_64`がApple Siliconの`arm64`に変わりました！

これで、`rbenv install (インストールするバーション)` をすると問題なくインストールできました！！

:::note warn
上記の手順で解決しない場合、
Homebrewの再インストールなどが必要になるかと思います。
:::

## おわりに
最後までお読み頂きありがとうございました！
どこかで誰かの役に立てると幸いです。

Markdownで書くのが楽しかったです！！