エラーコマンドとメッセージ
$ jekyll
-bash: /usr/local/bin/jekyll: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory
pryなど、Gemで入れた他のツールも動かない。辛い。
原因
Macのメジャーアップデートにより、System下のRubyのバージョンが変わったため。
必要なコマンド
# gemの認識するrubyのバージョンのアップデート?
sudo gem update --system
# developerツール入れ直し
xcode-select --install
# Mojave用のCommandLineToolsがheadersを読み込んでくれないため対応
sudo open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
エラー対応のログ
sudo gem update --systemのあと
以下のようなエラーが出ていた
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
xcode-select --install のあと
以下のようなエラーが出ていた
/Users/hoge/.rbenv/versions/2.5.0/include/ruby-2.5.0/ruby/defines.h:112:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^~~~~~~~~
1 error generated.
make: *** [ruby_http_parser.o] Error 1
make failed, exit code 2
その他
pry
とかは sudo gem update --system
だけで対応できそうです。
参考
gem updateについて
最後の mac_sdk_headers
追記
またエラーでた。
jekyll
# => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/dependency.rb:319:in `to_specs': Could not find 'jekyll' (>= 0) among 15 total gem(s) (Gem::LoadError)
下にGEM_PATHが変やで!!という1文があり、rbenv下にgemをinstallしていたので、
とりあえず.bash_profileに以下を書いて対応。
この辺ベストじゃないプラクティスっぽいけど、とりあえず対応完了。
# hogeはユーザーネームに変えてね
export GEM_PATH="/Users/hoge/.rbenv/versions/versions/2.5.0/lib/ruby/gems/2.5.0/"