【備忘録】M1 MacでRuby製Middlemanの環境作る
category:web
早いところApple Siliconに移行してく
WWDC21を見終わって、M1搭載のMacが発売されもう半年以上は経つが、Intelからの完全離脱は2年かかると言ってたけどもうすぐだし、このタイミングで移行することを決意。
ネイティブ(arm64)で動くアプリなど増えてきたし、Rosetta 2(x86_64をApple Siliconで)も動くようだし。
そしてこのサイトがRuby製Middlemanでbuildされていて、そろそろジェネレータを変えた方が良いんだけど、Homebrew、rbenv使うのに多少注意も必要そうなので手順を備忘録として残しておく。
(元のプロジェクトフォルダが存在すること前提です)
Homebrewを入れてからrbenvをインストール
macなのでRubyは最初から入っている。※(2021/06/12現在)
-> ~ ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20]
このRubyがどこに入っているのか確認。
-> ~ which ruby /usr/bin/ruby
macOS Catalinaから引っ越ししてきたこのMiddlemanのスケルトンは2.7系で動いてたので、rbenvで2.7系Rubyを使えるようにする。
(rbenvはプロジェクトごとに異なるver.のRubyを使えるようにしてくれるツール)
rbenvはHomebrewでインストールするので、Homebrewをまずインストール。
(HomebrewはmacOS用パッケージマネージャー)
その前にmacOSコマンド使うにはCommand Line Toolsが必要なのでそちらを先にインストール。
(Xcode入っている場合はスルー)
-> ~ xcode-select --install
Homebrewのインストールだが、Apple Silicon対応したのがバージョン3.0.0、今なら最新をインストールしておいて問題なし。
-> ~ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrewがインストールされたか確認
-> ~ brew -v Homebrew 3.1.12 Homebrew/homebrew-core (git revision f7a9c3b9fc; last commit 2021-06-12)
Homebrewでインストールされているパッケージ一覧を確認
(rbenvは当然まだインストールされてない)
-> ~ brew list
インストールされた場所確認
-> ~ which brew /opt/homebrew/bin/brew
rbenvをインストール
ruby-buildと一緒にrbenvをインストールする。
ruby-buildは、、
ruby-build is a command-line utility that makes it easy to install virtually any version of Ruby, from source.
github - ruby-build
It is available as a plugin for rbenv that provides the rbenv install command, or as a standalone program.
rbenv install
を使うために必要なrbenvのプラグインみたいです。
-> ~ brew install ruby-build rbenv
インストールできたら、とりあえず確認
-> ~ rbenv -v rbenv 1.1.2
先にパスを通しておく
.zshrc
がホームフォルダに隠しファイルとしてあるはず。
隠しファイル/フォルダが見れない状態であれば、以下のコマンドを入力(見えてればスルー)
-> ~ defaults write com.apple.finder AppleShowAllFiles -boolean true
Finder再起動
-> ~ killall Finder
元に戻す場合は、 ` -boolean true` を省いて再入力
-> ~ defaults write com.apple.finder AppleShowAllFiles
Finder再起動
-> ~ killall Finder
見れてるのにない場合は .zshrc
ファイルを作ってしまう、カレントがホームであることを確認して
-> ~ touch .zshrc
エディターで.zshrc
ファイルを開き以下の2行を追記
(Oh My Zshなんかをインストールすると.zshrc
ファイルが上書かれるので、その場合はまた追記する)
export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"
.zshrc
読み込み直す
-> ~ source ~/.zshrc
Rubyがいる場所を尋ねると先と場所が変わっているはず
-> ~ which ruby /Users/USER_NAME/.rbenv/shims/ruby
以上、、次はRubyをインストールする
rbenvを使ってRubyをインストール
まずはインストールできるRubyのバージョンを確認する
-> ~ rbenv install -l 2.6.7 2.7.3 3.0.1 , , , Only latest stable releases for each Ruby implementation are shown. Use 'rbenv install --list-all / -L' to show all local versions.
上記の場合だと安定板だけが表示されかなり限られたバージョンしか出てこないので、書いてあるとおり以下のコマンドを叩くと全てのバージョンが表示されます
-> ~ rbenv install --list-all / -L
今回は2.7系で動くことを確認できているので、とりあえず指定してインストール
-> ~ rbenv install 2.7.3
インストール完了したらrbenvを更新する
-> ~ rbenv rehash
rbenvでインストールされているRubyの一覧を表示する
-> ~ rbenv versions * system (set by /Users/USER_NAME/.rbenv/version) 2.7.3
↑はまだ2.7.3のバージョンは選ばれてない状態。
mac全体で2.7.3のバージョンを使いたい場合
-> ~ rbenv global 2.7.3
プロジェクトごとにRubyのバージョンを使い分けたい時は、ディレクトリに移動して
-> ~ rbenv local 2.7.3
それぞれの場所で望みのバーションが表示されていれば成功
-> ~ ruby -v ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [arm64-darwin20]
bundlerでmiddlemanインストール
Gemfileファイルはすでにあるので、そのまま使う。
プロジェクトのディレクトリで、Gemfile.lockとvendorフォルダをあらかじめ削除しておく
-> ~ rm Gemfile.lock -> ~ rm -r vendor
bundlerをインストールする
-> ~ gem install bundler
bundlerから必要なものを、パスを指定して全てインストールする
-> ~ bundle install --path vendor/bundle
終わったらmiddlemanコマンドが使えるはずなので、サーバー起動
-> ~ bundle exec middleman server
buildも試しておく
-> ~ bundle exec middleman build
以上で、問題なくM1搭載mac上でmiddlemanが使えるようになるはず。