KeiIchiのブログ

プログラミング学習で、日々学んだことを書いていきます!

bundle installを行った際のエラー解決

本番環境で利用するアプリケーションサーバーにunicornを用いるため、それをgemを用いてインストールする際に起こったエラーとその解決方法を短いですが書いていきます。

gemfileに以下の内容を記述

group :production do
  gem "unicorn"
end
% bundle install
#実行結果
~長文
An error occurred while installing kgio (2.11.3), and Bundler cannot continue.
Make sure that `gem install kgio -v '2.11.3' --source 'https://rubygems.org/'` succeeds before bundling.

とりあえずgem install kgio -v '2.11.3' --source 'https://rubygems.org/を実行してみるが、実行結果に特に変わった内容はなかった。しかしその記述の中に、

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  ~/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-20/2.6.0/kgio-2.11.3/mkmf.log

と記載されていたので、それを調べるために

% tail -f   ~/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-20/2.6.0/kgio-2.11.3/mkmf.log
#実行結果
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

となり、よくわからなかったので、tail -Fコマンドを用いて実行ログを常に確認できるようにしました。

コンソールタブを別にして開き
% tail -F ~/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-20/2.6.0/kgio-2.11.3/mkmf.log
#実行結果
ログが出力される状態となる

別のタブにて
% bundle install

すると、tail -F ~/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-20/2.6.0/kgio-2.11.3/mkmf.logを実行したタブにて

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
checked program was:

エラー文を見つけられました。検索をかけるとxcodeコマンドラインツールがインストールされていないことにより起きているとわかったので(macのアップデートを以前行っていたことが関係しているかもしれません)

%  xcode-select --install
% bundle install

これでgemのインストールが行えました。 今回は以上になります。