概要
プログラミング勉強真っ只中の私ですが、先日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
というフォルダが空だったので、一度削除したらインストール出来ました。
インストール出来ましたが、また.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の環境も整いました!
ここまで長かった...
環境構築って大変
プログラミングを挫折する人が多い理由の一つに環境構築が大変、というのをよく目にしますが、よく分かった気がします。笑
しかし、色々根気強く調べながらやっていけばなんとかなる!とも思いました。
先輩エンジニアの方々の情報にはとても感謝です。
まだまだ駆け出しの駆け出しですが、もっと頑張るぞ〜