195

職場と自宅の両方のコンピューターで、最近 Ruby を 2.3.1 にアップグレードしましruby-installた。chrubyRubyスイッチャーとして使用しています。

端末に次の警告が表示されるようになりました。

Ignoring bcrypt-3.1.11 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.11
Ignoring bcrypt-3.1.10 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.10
Ignoring binding_of_caller-0.7.2 because its extensions are not built.  Try: gem pristine binding_of_caller --version 0.7.2
Ignoring byebug-9.0.5 because its extensions are not built.  Try: gem pristine byebug --version 9.0.5
Ignoring byebug-5.0.0 because its extensions are not built.  Try: gem pristine byebug --version 5.0.0
Ignoring concurrent-ruby-ext-1.0.2 because its extensions are not built.  Try: gem pristine concurrent-ruby-ext --version 1.0.2
Ignoring debug_inspector-0.0.2 because its extensions are not built.  Try: gem pristine debug_inspector --version 0.0.2

私の仕事であるコンピューターでは、リストははるかに長くなりましたが、簡単に解決できました。提案された を試したgem pristine GEMところ、宝石が見つからないと言われたため、実行gem install GEMして解決しました。

家では、何も機能していません。

常識や他のさまざまなスタックの質問から、私が試したこと:

  • gem pristine GEM
  • gem pristine --all
  • gem のアンインストールと再インストール
  • gem update
  • gem update --system
  • bundle update
  • アンインストールと再インストールbundler
  • アンインストールと再インストールrails(ただし、これは Rails 固有の問題ではありません。)
  • 削除する~/.bundle/
  • いくつかの拡張機能を開いXCodeてインストールさせます(実行する必要はありましたが、何も修正されませんでした。)
  • brew doctorすべての小さな問題を実行して解決し、brew updateそしてbrew upgrade
  • gem install curb(この gem がこの問題にどう関係しているのか想像できませんが、2 人の異なる人が同じ警告に対する修正の最後のステップとしてそれを挙げました。)
4

22 に答える 22

217

今日、まさにこの問題に遭遇しました。インストールさえされていない宝石に対して、このような警告が表示されます!

...まあ、宝石インストールされていることがわかりました-私がchrubyでアクティブに設定したものとは異なるルビー用です(2.2.3対2.3.1)。

すべての異なるルビーに切り替えてgem pristine --all、それらすべてで実行すると、問題が解決しました。

于 2016-10-05T05:59:14.667 に答える
12

上記のすべてを実行しました

  • xcode-select --install
  • ルビーを再インストールする
  • すべての宝石を再インストールします
  • gem pristine --all

しかし、問題は私にとっても同じでした。最後の希望として Mac を再起動したところ、警告メッセージが消えました。

奇妙ですが、StackOverflow ですべてを試した後で誰かがこの問題に苦しんでいる場合は、マシンを再起動してみてください。

于 2016-11-01T14:09:36.187 に答える
7

実行gem pristine --allは最初は役に立ちませんでしたが、実行していたスクリプトが次の行で始まっていることに気付きました。

#!/usr/bin/ruby

私の macOS システム (Catalina ですが、重要ではないと思います) では、これは RVM によってインストールされたものではなく、システムに付属の Ruby を指しています。実行中gem pristine --allは RVM のインストールを修正していましたが、私のスクリプトは別のバージョンの Ruby を呼び出していました。

私にとっての修正は、envコマンドを使用して、現在のシェルの で指定されている Ruby を呼び出すことでしたPATH。スクリプトの一番上の行をこれに変更すると、次のように修正されました。

#!/usr/bin/env ruby

于 2020-01-31T20:58:55.757 に答える
1

tmux私はこの問題を抱えていましたが、を使用してセッションを開始したときだけでしたtmuxinator

を使用してインストールするのではなく、tmuxinatorfromを使用しているためです。同時に使用することも問題の原因となった可能性があります。brewgem installchruby

p/s: から未使用のルビーも削除しまし~/.gem/rubyたが、それがこの問題が解決された理由だとは思えません。

于 2020-01-28T00:45:31.090 に答える
0

ターミナルでこれらのコマンドを実行し、私のために働きました:

  1. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. brew install ruby、sudo (sudo brew install ruby​​) が必要な場合があります。
  3. echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
  4. source ~/.bash_profile
  5. sudo gem pristine --all
于 2020-12-12T22:07:36.053 に答える