WEB掻っ穿じり

WEB備忘録とチャリとカメラ

【備忘録】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.
It is available as a plugin for rbenv that provides the rbenv install command, or as a standalone program.

github - ruby-build

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が使えるようになるはず。