Techioz Blog

インストールしたばかりなのに、Google protobuf gemが見つかりません

概要

まず第一に、私はシステム Ruby を使用していません。Mac OS 上のシステム Ruby には多くの問題があるため、新しくインストールしたシステム Ruby を使用しています。どのルビーとどの宝石が同じルビーを使用しているかを示します

Jekyllserve を実行しようとしていますが、バンドルで Google protobuf が見つかりません。 Bundle install と gem install google-protobuf を試しましたが、何も機能しません。ターミナルの出力は次のようになります。

username@MBP repo % gem install google-protobuf
Building native extensions. This could take a while...
Successfully installed google-protobuf-3.25.2
Parsing documentation for google-protobuf-3.25.2
Done installing documentation for google-protobuf after 0 seconds
1 gem installed

username@MBP repo % bundle info google-protobuf-3.25.2   
Could not find gem 'google-protobuf-3.25.2'.

username@MBP repo % bundle exec jekyll serve             
Could not find google-protobuf-3.25.2 in locally installed gems
Run `bundle install` to install missing gems.

username@MBP repo % jekyll server                        
Ignoring google-protobuf-3.25.2 because its extensions are not built. Try: gem pristine google-protobuf --version 3.25.2
Ignoring google-protobuf-3.25.2 because its extensions are not built. Try: gem pristine google-protobuf --version 3.25.2
/Users/jakobimuller/.gem/ruby/3.1.3/gems/bundler-2.5.3/lib/bundler/definition.rb:570:in `materialize': Could not find google-protobuf-3.25.2 in locally installed gems (Bundler::GemNotFound)
    from /Users/jakobimuller/.gem/ruby/3.1.3/gems/bundler-2.5.3/lib/bundler/definition.rb:203:in `specs'
    from /Users/jakobimuller/.gem/ruby/3.1.3/gems/bundler-2.5.3/lib/bundler/definition.rb:270:in `specs_for'
    from /Users/jakobimuller/.gem/ruby/3.1.3/gems/bundler-2.5.3/lib/bundler/runtime.rb:18:in `setup'
    from /Users/jakobimuller/.gem/ruby/3.1.3/gems/bundler-2.5.3/lib/bundler.rb:162:in `setup'
    from /Users/jakobimuller/.gem/ruby/3.1.3/gems/jekyll-4.3.3/lib/jekyll/plugin_manager.rb:52:in `require_from_bundler'
    from /Users/jakobimuller/.gem/ruby/3.1.3/gems/jekyll-4.3.3/exe/jekyll:11:in `<top (required)>'
    from /Users/jakobimuller/.gem/ruby/3.1.3/bin/jekyll:25:in `load'
    from /Users/jakobimuller/.gem/ruby/3.1.3/bin/jekyll:25:in `<main>'

スクリプト、バンドルインストール、ジェムインストールを使用してインストールしようとしましたが、どれも適切にインストールされず、Jekyllserveを実行できなくなりました。

解決策

gem ‘google-protobuf’ を Gemfile に追加し、バンドル インストールを実行します。バンドルを使用してコマンドを実行すると、プロジェクトの Gemfile で指定された gem のみが使用されます。