2
2

More than 3 years have passed since last update.

【M1チップ】Homebrew経由でのRubyインストールに苦戦した

Last updated at Posted at 2021-01-24

概要

プログラミング勉強真っ只中の私ですが、先日M1チップ搭載のMacbook Proを購入しました。
そこでRuby on Railsの環境構築をしようとしたところ苦戦しましたが、初心者の私でもなんとか出来たのでやったことを残しておきます。
(最初はHomebrewって何?美味しいの?ってレベルでした)

参考にさせていただいた記事
https://qiita.com/aiorange19/items/5ffaefc85f912f60c2fa

動作環境

・Macbook Pro (13-inch, M1, 2020)
・macOS Big Sur (ver11.0.1)

Xcodeをインストールして無い人は予めインストールしておくと幸せになれるかもしれません。
(App StoreからDL出来ます)
容量約12GBなのでめっちゃ時間かかった。

Homebrewのインストール

Homebrewをインストールします。
https://brew.sh/index_ja

公式ドキュメントにも記載があるように、M1チップのMacでは「/opt/homebrew」にインストールすることが推奨されているので、そうしましょう。
自分の場合は何も考えずに公式サイトのコードをコピペして自動的に「/opt/homebrew」にインストールされましたが...。

(訳)
ただし、macOSIntelでは/ usr / local、macOSARMでは/ opt / homebrew、Linuxでは/home/linuxbrew/.linuxbrewにインストールしてください。

予めディレクトリを作っておいて、インストール先を指定した方が良いかもしれません。

% cd /opt
/opt % sudo mkdir homebrew
/opt % curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

brewコマンドが打てない

しかし、このままだとbrewコマンドが打てなかった

% brew -v
zsh: command not found: brew

で、ここで最初の壁にぶち当たりましたが、どうやらPATHというものを通さなければならないらしい。
PATHを通すためには「.zshrc」というファイルにその旨のコードを記述する必要があるっぽいんですけど...

% ls -a
.               Documents           Music               Public              Downloads
..              Dropbox             .DS_Store           Movies              Pictures
Library         Desktop             .adobe              .zsh_history        .cups
.zsh_sessions   .dropbox            .Trash              Creative Cloud Files
.local

そのファイルが無い\(^o^)/

無くて焦りましたが、なかったら作れば良いということで作りました。
作成したら、PATHを通すコードを記述します。

% touch .zshrc
% open ~/.zshrc

# .zshrcに下記を記述
export PATH=/opt/homebrew/bin:$PATH

# またはコマンドラインで下記を実行
% echo 'export PATH=/opt/homebrew/bin:$PATH' >> .zshrc

# .zshrcが編集できたら設定を反映させるために下記を実行
% source .zshrc

brewコマンドが使えるか確認してみる。

% brew -v
Homebrew 2.7.5  # Homebrewのバージョンが表示されればOK

無事PATHを通せました。

rbenvでRubyのインストール

Homebrewがインストール出来たら、Rubyのバージョン管理ができるようにrbenvをインストールします。

% brew install rbenv

これも先ほどと同じようにPATHを通す必要があるので、.zshrcに追記します。

% open ~/.zshrc
# 下記を記述
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

# またはコマンドラインで下記を実行
% echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> .zshrc
% echo 'eval "$(rbenv init -)"' >> .zshrc

# 設定を反映
% source .zshrc

これでRubyインストールの準備完了です。

Rubyのインストール

# 公開されている(DL可能な)Rubyのバージョン一覧を確認
% rbenv install -l
2.5.8
2.6.6
2.7.2
3.0.0
jruby-9.2.14.0
mruby-2.1.2
rbx-5.0
truffleruby-21.0.0
truffleruby+graalvm-21.0.0

2020年12月25日にRuby 3.0.0が公開されましたが、ここでは2.7.2
をインストールしました。
Ruby 3.0.0はなんか動作が早くなったとか...。
もうちょっと勉強したらアップデートしようと思います。

ということでRubyをインストール

% rbenv install 2.7.2

、、、しようとしましたがなぜか上手くいかない。

いろいろ調べると、openssl関連で上手くいっていないようでした。
とりあえずインストールを試みましたが...

% brew install openssl
Error: /opt/homebrew/opt/openssl@1.1 is not a valid keg

なんやこれ...
このエラー解消に結構時間がかかってしまいました。

結果、/opt/homebrew/Cellarに作られてたopenssl@1.1というフォルダが空だったので、一度削除したらインストール出来ました。
スクリーンショット 2021-01-25 0.48.52.png

インストール出来ましたが、また.zshrcを編集してPATHを通します。

% which openssl
/usr/bin/opensl  # homebrewへPATHを通しましょう

# .zshrcに下記を追記
export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"
export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib"
export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@1.1/lib/pkgconfig"
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/homebrew/opt/openssl@1.1"

# 設定を反映
% source .zshrc

# 再度opensslの場所を確認
% which openssl
/opt/homebrew/opt/openssl@1.1/bin/openssl

% openssl version
OpenSSL 1.1.1i  8 Dec 2020  # ちゃんとインストール出来てる

# homebrewへリンクを通す
% brew link openssl

これでようやくRubyをインストールできるはず!

% rbenv install 2.7.2
Downloading ruby-2.7.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.2.tar.bz2
Installing ruby-2.7.2...
ruby-build: using readline from homebrew

BUILD FAILED (macOS 11.0.1 using ruby-build 20210119)

Inspect or clean up the working tree at /var/folders/p8/krxwz5vn6ld7l4_bc2g1xnbr0000gn/T/ruby-build.20210124030531.27274.KLMWnZ
Results logged to /var/folders/p8/krxwz5vn6ld7l4_bc2g1xnbr0000gn/T/ruby-build.20210124030531.27274.log

Last 10 log lines:
checking for off_t... yes
checking char bit... 8
checking size of int... 4
checking size of short... 0
checking size of long... 0
checking size of long long... configure: error: in `/var/folders/p8/krxwz5vn6ld7l4_bc2g1xnbr0000gn/T/ruby-build.20210124030531.27274.KLMWnZ/ruby-2.7.2':
configure: error: cannot compute sizeof (long long)
See `config.log' for more details

You have not agreed to the Xcode license agreements, please run 'sudo xcodebuild -license' from within a Terminal window to review and agree to the Xcode license agreements.

...あれ?
最後を見ると、Xcodeインストールしとけや!って書いてありますね。
はい。自分は最初にインストールしてなかったのでここでまた無駄なダウンロード待ち時間が発生しました。

3度目の正直

Xcodeをインストールし、再度実行。さすがに頼む。

% rbenv install 2.7.2
Downloading ruby-2.7.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.2.tar.bz2
Installing ruby-2.7.2...
ruby-build: using readline from homebrew
Installed ruby-2.7.2 to /opt/homebrew/opt/rebind/versions/2.7.2

出来たーーー!!

あとは下記の流れに沿って...

% rbenv versions
* system (set by /opt/homebrew/opt/rebind/version)
  2.7.2

% rbenv rehash

% rbenv global 2.7.2

% rbenv versions
  system
* 2.7.2 (set by /opt/homebrew/opt/rebind/version)

% ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [arm64-darwin20]

これでRubyのバージョン切り替えができるようになりました!

Ruby on Railsのインストール

Railsもインストールしておきましょう。

% gem install rails
# バージョン指定しなければ最新版がインストールされる...と思います。

# 最後に一通り更新しておく
% rbenv rehash
% source ~/.zshrc

# Railsのバージョン確認
% rails -v
Rails 6.1.1

これでRuby on Railの環境も整いました!

ここまで長かった...

環境構築って大変

プログラミングを挫折する人が多い理由の一つに環境構築が大変、というのをよく目にしますが、よく分かった気がします。笑
しかし、色々根気強く調べながらやっていけばなんとかなる!とも思いました。
先輩エンジニアの方々の情報にはとても感謝です。

まだまだ駆け出しの駆け出しですが、もっと頑張るぞ〜

2
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2