このサイトは、Jekyllを利用していますので、Macを新調した際に入れ直したのですが、サイトに記載の通りでは上手くいかなかったので、どう対応したかメモとして残しておきます。
環境
Mac : Mac mini (M1, 2020)
macOS : Monterey 12.1
挑戦日 : 2022/1/12
まずは、サイト記載の方法に従ってやってみた
問題なくクリア
素直にサイト記載の方法でやってみました。
Installation | Jekyllに記載の範囲はクリア。
Rubyは2.6.8が元々入っていました。
続いてOSごとの具体的インストール手順へ。Jekyll on macOS | Jekyll
xcode-select --install
で次のウィンドウが表示されるのでインストール。
macOS Catalina(10.15)以降は最初から入っているRubyの場所が変わってるので、SDKROOTの設定が必要とのこと。
export SDKROOT=$(xcrun --show-sdk-path)
Rubyは2.6.8だったので、次のInstall Rubyは無視。
不具合発生
では、bundlerとjekyllをインストールしましょうと実行。
gem install --user-install bundler jekyll
bundlerは問題なくインストールできたのですが、jekyllインストール時にエラーが発生。
/System/Library/Frameworks/Ruby.framework/Version/2.6/usr/bin ruby -c lib/jekyll/commands/doctor.rb
RDoc is not a full Ruby parser and will fail when fed invalid ruby programs.
The internal error was:
(NoMethodError) undefined method `[]' for nil:NilClass
ERROR: While executing gem ... (NoMethodError)
undefined method `[]' for nil:NilClass
ですって。
gem list
で確認すると、jekyll (4.2.1)は入っているのですが、jekyllコマンドを実行するとクラッシュ。
試行錯誤開始
やってみたけどダメだった
ひとまず、4.2.1はアンインストールして、バージョン指定で4.1.1をインストールしてみる。
gem uninstall jekyll
gem install --user-install jekyll -v "4.1.1"
エラーが出ずにインストールは完了。
ただし、jekyllコマンドを実行しようとするとクラッシュ。
どうにかできた
Rubyの方がダメそうな気配を感じたので、Homebrewをインストールして、Rubyをインストール。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"
下2行は、Homebrewインストール時にPathが通ってないから、やっておけよと出たので。
ではHomebrewでRubyをインストール。
brew install ruby
echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"
こちらも下2行はインストール時にやっておけと出たので。
なお、Jekyllのサイトで紹介されているのと異なるパスです。
Rubyのバージョンを確認すると、3.0.3p157でちゃんと更新できていました。
最後に、Jekyllをインストール。ただ、4.2.1は挑戦せず、最初から4.1.1で。
gem install --user-install jekyll -v "4.1.1"
echo 'export PATH="$HOME/.gem/ruby/3.0.0/bin:$PATH"' >> ~/.zshrc
export PATH="$HOME/.gem/ruby/3.0.0/bin:$PATH"
jekyllコマンドも今度はきちんと動いたので、めでたしめでたし。
プラグインのインストール
jekyll-paginate-v2を使用しているので、そちらもインストール。
gem install jekyll-paginate-v2
実は、すっかり何を使用しているか忘れていて、build時に見つからないと怒られてしまったので、慌ててインストールしました。