🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
rbenv

rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2143閲覧

Railsのincompatible library versionエラー

Romay

総合スコア40

rbenv

rbenvは、Rubyバージョン管理ツール。プロジェクトごとでRubyバージョンを切り替えることが可能です。RVMよりもシンプルで、少ない機能で動作します。本体にはRubyのビルド機能は備わっておらず、ruby-buildというツールを用いる必要があります。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/02/06 11:39

前提・実現したいこと

Railsアプリケーションを作成中です。複数人で開発しており、別人がRubyのversionやgem等アップデートして、git pull origin developしてからローカルでサーバーが立ち上げられない状況です。

発生している問題・エラーメッセージ

/Users/ ---/projects/---/---/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': incompatible library version - /Users/name/projects/pj-abc/abc/vendor/bundle/ruby/2.7.0/gems/pg-1.2.3/lib/pg_ext.bundle (LoadError) from /Users/name/projects/pj-abc/abc/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' from /Users/name/projects/pj-abc/abc/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' #以下同様なエラーが複数のgemに対して発生

###試したこと
いろいろと試してみましたが、どれもエラーは解消されませんでした。以下に試したことを記載します。

  1. Ruby, rbenvの設定周りの確認。ruby -v 2.7.2なのに、rbenv --version 1.1.2 なの怪しい。。?

Terminal

1(base) MacBook:abc name$ rbenv versions 2 system 3 2.3.1 4 2.4.5 5 2.7.1 6* 2.7.2 (set by /Users/name/projects/abc/abcd/.ruby-version) 7(base) MacBook:abc name$ rbenv --version 8rbenv 1.1.2 9(base) MacBook:abc name$ which ruby 10/Users/name/.rbenv/shims/ruby 11(base) MacBook:abc name$ ruby -v 12ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin18] 13

2.他にもいろいろと試してみました

bundle install bundle update bundle install --path vendor/bundle bundle install --path=vendor/bundle --clean gem update --system

3.以下もダメでした。

terminal

1gem pristine --all 2bundle install

4.以下もダメ。

terminal

1(base) MacBook:abc name$ rvm gemset empty 2-bash: rvm: command not found

5.以下はincompatible library versionのエラーが出ました。

terminal

1bundle exec rails r 'Rails.cache.clear'

6.以下でgemもアンインストールできませんでした。

Terminal

1(base) MacBook:abc name$ gem uninstall bootsnap 2Gem 'bootsnap' is not installed

参考にした記事

Ruby on Rails incompatible library

「incompatible library version」の根本原因・解決策
【2つの解決法】rails コマンドのエラーincompatible library version ~~~~~(LoadError)

ご教授いただけますと幸いです。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Bundlerトラブルはわかりにくいですね。
そちらの状況がよくわからないので答えではないですが、一つ確認ください。

Bundlerのバージョンを開発者全員で合わせた方が良いと思います。

sh

1bundler -v

うちではBundler 1.xにしたら動きました。
Bundler 2.xはいろいろやりましたが、結局使えず 1.xを使い続けてます。
Railsではなく Padrinoですが。

sh

1gem uninstall bundler -v 2.1.2 2gem install bundler -v 1.17.3 3bundle _1.17.3_ install

投稿2021/02/06 12:11

gambaldia

総合スコア266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Romay

2021/02/07 07:22 編集

ありがとうございます。確認したところ別の開発者のbundler のバージョンは、2.1.4でした。自分のbundlerのバージョンは2.2.8でしたのでご指摘の通りbundlerのバージョン違いになっていました。 ``` (base) MacBook:abc name$ gem uninstall bundler Gem bundler-2.2.8 cannot be uninstalled because it is a default gem Select gem to uninstall: 1. bundler-2.1.4 2. bundler-2.2.8 3. All versions > 2 Successfully uninstalled bundler-2.2.8 ``` しかし、上記のようにbundlerをuninstallしたところ、以下のような新たなエラーが出てきました。 ``` (base) MacBook:abc name$ bundler -v Traceback (most recent call last): 1: from /Users/name/.rbenv/versions/2.7.2/bin/bundler:23:in `<main>' /Users/name/.rbenv/versions/2.7.2/bin/bundler:23:in `load': cannot load such file -- /Users/name/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.8/exe/bundler (LoadError) ``` bundle installしても同様のエラーが出る状態です。ご教授いただければ嬉しいです。
gambaldia

2021/02/07 08:43

乗っているbundler一覧をみてください。 gem list bundler で、Defaultにしたいものを選びます。 bundler config default 2.1.4 Default以外のbundlerを使いたいときは bundle _2.2.8_ install のようにすれば良いと思います。
Romay

2021/02/07 09:09

ありがとうございます。ご教授いただいたように以下実行しましたが、2.1.4にならないようです。。 bundler一覧では、2.1.4と2.2.8が表示されています。 (base) MacBook:abc name$ gem list bundler *** LOCAL GEMS *** bundler (2.2.8, 2.1.4) (base) MacBook:abc name$ bundler config default 2.1.4 (base) MacBook:abc name$ bundler -v Bundler version 2.2.8 (base) MacBook:abc name$ bundle _2.1.4_ install Warning: the running version of Bundler (2.1.4) is older than the version that created the lockfile (2.2.8). We suggest you to upgrade to the version that created the lockfile by running `gem install bundler:2.2.8`. The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`. (base) MacBook:abc name$ bundler -v Bundler version 2.2.8
gambaldia

2021/02/07 14:58

bundle _2.1.4_ install はちゃんと動いているようです。 新しいエラーがでています。Gemfile.lockがbundler 2.2.8で作られたからです。 Gemfile.lockを消してやり直したらどうなりますか? なお、bundler -v はDefaultが動くとは限らないようです。直感的じゃないですね。
Romay

2021/02/13 06:41 編集

BUNDLED WITH 2.2.8のGemfile.lock を消して、bundle _2.1.4_ installを行いました。Gemfile.lockの中身はBUNDLED WITH 2.1.4になっており、rails sをしたところ以下のようにエラーが出てきました...。 (base) MacBook:abc name$ rails s Traceback (most recent call last): 55: from bin/rails:3:in `<main>' 54: from bin/rails:3:in `load' 53: from /Users/name/projects/pj-abc/abc/bin/spring:15:in `<top (required)>' 52: from /Users/name/.rbenv/versions/2.7.2/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require' 51: from /Users/name/.rbenv/versions/2.7.2/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require' 以下同様のエラー文が続き,.. /Users/name/projects/pj-abc/abc/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': incompatible library version - /Users/name/projects/pj-abc/abc/vendor/bundle/ruby/2.7.0/gems/pg-1.2.3/lib/pg_ext.bundle (LoadError) ご教授いただいたように、bundlerは2.1.4にできたようですが、新たなエラー(Gemのバージョン?)が発生しているようです。大変恐縮ですが、ご教授いただけますと嬉しいです..!
gambaldia

2021/02/13 10:33

次から次にエラーがでますね。わたしが「バンドラー地獄」と呼んでいる現象です。 gem install xxxxx -v x.x.x で一つずつインストールするしか方法を知りません。 頑張ってください。
Romay

2021/02/13 17:04

ありがとうございます。結局、vendor配下のbundleフォルダを丸ごと手動削除し、"bundle _2.1.4_ install"をすることで、解決されました。なぜかforemanがうまくはいっていなかったので、 gem install foremanでインストールしサーバー立ち上げできました。ご教授いただきありがとうございました。
gambaldia

2021/02/14 01:22

よかったです。 うまくいくときはコマンド一発で一気に完了なのですが、トラブルと・・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問