middlemanを起動しようとしたら、次のようなエラーが発生しました。対処策をご紹介します。
エラー発生
1 2 3 4 |
$ middleman /Users/xxxx/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler/setup (LoadError) from /Users/xxxx/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' from ./bin/middleman:15:in `<main>' |
OS X : 10.13.2(17C88)
発生日:2020/3/20
対処策
bundlerがインストールされていないことが原因なので、インストールすればいいです。ただ、普通にやると、次のように最新版をインストールしようとしてしまい、現在のプロジェクトのrubyバージョンに互換性が無くエラーが発生してしまいます。
1 2 3 4 |
$ gem install bundler Fetching: bundler-2.1.4.gem (100%) ERROR: Error installing bundler: bundler requires Ruby version >= 2.3.0. |
なので、Gemfile.lockを見て、そのプロジェクトで使っていたbundlerのバージョンを確認してからインストールします。
1 2 3 4 5 6 7 |
$ cat Gemfile.lock | grep -A 1 "BUNDLED WITH" BUNDLED WITH 1.13.6 $ gem install bundler -v '1.13.6' Fetching: bundler-1.13.6.gem (100%) Successfully installed bundler-1.13.6 1 gem installed |
この後にmiddlemanを起動するとエラーが発生せず正常に動きます。
経緯
この事象が起きた経緯を説明します。
python3をhomebrewで入れました。(後で気付いたことですが、この時、homebrew update かupgradeが走ったか、自分で実行してしまい、opensslのバージョンが上がった事が全てのきっかけだと推察します)
その後、middlemanを実行すると、次のようなエラーが発生しました。
1 2 |
$ middleman /Users/xxxx/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': dlopen(/Users/araky/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin15.0/digest/sha1.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (LoadError) |
また、pryが起動しないなどの事象も発生し、次の記事を読んでrubyごと再インストールしました。
ruby再インストールでもエラーが出て時間がかかったのですが、次の記事に書いたようになんとかできました。
rbenv installでエラーが出るときの対処策rbenvでruby 2.1.2をインストールしようとしたらエラーが発生して、思った以上に時間がかかってしまいました。最終的にインストー...
rubyごと再インストールした結果、bundlerも削除されてしまって、本記事のエラーが発生したということです。
ちなみに、後で気づきましたが、rubyごと再インストールしなくても、opensslのリンクの張り替えなどをすれば、middlemanの問題もpryの問題も解決できたのかもしれません。それの具体的な方法についても、上記の記事に書いたので、ご覧下さい。