職場のコンピューターと自宅のコンピューターの両方で、最近Ruby-install
を使用してRubyを2.3.1にアップグレードしました。 chruby
をRubyスイッチャーとして使用します。
私は自分の端末でこの警告を見始めました:
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が見つからなかったので、gem install GEM
を実行しましたが、それで解決しました。
自宅では、何も機能していません。
常識やその他のさまざまなStackの質問から、私が試したもの:
gem pristine GEM
gem pristine --all
gem update
gem update --system
bundle update
bundler
のアンインストールと再インストールRails
のアンインストールと再インストール(ただし、Rails固有の問題ではありません。)~/.bundle/
を削除していますXCode
を開き、いくつかの拡張機能をインストールさせます(実行する必要はありましたが、何も修正しませんでした)。brew doctor
を実行し、すべての小さな問題を解決してから、brew update
およびbrew upgrade
gem install curb
(このgemがこのgemに何の関係があるか想像できませんが、2人の異なる人々が同じ警告に対する修正の最後のステップとしてそれをリストしました。)今日、私はこの正確な問題に遭遇しました-インストールされていないgemについてもこのような警告が出ます!
...それで、gems were installed-chrubyでアクティブに設定したものとは異なるRuby(2.2.3対2.3.1)が判明しました。
すべての異なるルビーに切り替えて、それらすべてでgem pristine --all
を実行すると、問題が解決しました。
私はこの問題にぶつかり、上記と同じコマンドをすべて実行しました。以前にインストールしたRubyバージョンをすべて削除することもありました。ただし、エラーは持続しました。
結局、~/.gem/Ruby/
にはさまざまな(以前にアンインストールされた)バージョンのジェムが残っていました。使用しなくなったフォルダを削除すると、エラーは消えました。
今日もこの問題が発生しましたが、エディター全体がエラーメッセージで赤く点滅したため、入力できなかったためにイライラしました。
何がそれを正確に引き起こしたのかは完全にはわかりませんが、複数のRubyバージョンOR multiple Rubyがあるので、それはと考えていますバージョンマネージャーinstalledそしてそれらは互いに上書きし、そうでなければgemへのパスを台無しにします。
gem
コマンドは、rbenvとrvmがある場合も上書きされます。
入力してインストールしたものを確認します。
which rvm
which rbenv
which chruby
それらのいずれかがインストールされている場合、パスが返されます。次に、それらを削除し、すべてのディレクトリを完全に消去してから、クリーンインストールを開始します。
削除
ここで私がしたことはrvm;
rvm implode
gem uninstall rvm
rm -rf ~/.rvm
rm -rf ~/.rvmrc
ここで私がしたことはrbenv
最初にインストールされた https://github.com/bernsie/rbenv-clean 、次に
rbenv clean
Sudo apt-get remove rbenv
rm -rf ~/.rbenv
再インストール
次に、作業するクリーンなホームディレクトリがあります。 buntu 14.04でRuby 2.1.4をインストールする方法 でrbenvを再インストールしました。そして最後に;
rbenv rehash
上記を含むすべてを行いました
しかし、問題は私にとって同じでした。最後の希望としてMacを再起動したところ、警告メッセージが消えました。
奇妙なことですが、StackOverflowですべてを試した後に誰かがこの問題に苦労している場合は、マシンを再起動してみてください。
RVMをインストールしている場合、異なるバージョンをインストールしているため、エラーをキャッチしている可能性があります。
無駄なバージョンを確認して削除しますが、これは良くないアプローチだと思います。とにかくエラーがなくなりました。
rvm list
rvm use Ruby-version
rvm remove Ruby-useless-version
ココアポッドを更新した後、.rvm GEM_HOMEに注入する必要があります
gem uninstall cocoapods
gem install cocoapods
おそらくpod COMMAND
はminitest
gemに関するエラーをスローするので、– gem install minitest
Rubyディレクトリが呼び出されるか、環境変数がシンボリックリンクされたディレクトリを指すか、コピーまたは名前変更された場合、このメッセージが表示される可能性があります。私はchrubyを使用しており、/opt/rubies/
-> /usr/local/Ruby/
をシンボリックリンクしていましたが、Rubyの動的ライブラリ検索ロジックはこれでうまく機能しません。
私の場合の解決策は、シンボリックリンクを/opt/rubies/
の実際のルビーに置き換え、各Rubyでgem pristine --all
を実行することでした。 RVMまたはRbenvを使用している他のユーザーにとっては、最初からやり直さずに幸運を祈ります。
これは正確な問題ではないかもしれませんが、うまくいけば助けになります。
新しい端末セッションを開始するというLibbyの提案(Sebastian Kimの答えについてコメントしました)は、私にとってはうまくいきました。他のどの製品よりもずっと速いので、答えをもっと見やすくするために答えにしたかったのです。
これは古いスレッドですが、自分でこの問題に出くわしました。
マシンを再起動する必要はありません。環境を更新するだけで、rehashコマンドでこれを実行できます。
rehash
マニュアルページから:rehash command re-computes the internal hash table of the contents of directories listed in the path environmental variable to account for new commands added.
ここに独自のフレーバーを追加します。 Homebrewを介してインストールされたrbenv
を使用し、これらの「無視...ビルドされていない拡張機能」メッセージのうち4つを取得していました。具体的には:
Ignoring bcrypt-3.1.12 because its extensions are not built. Try: gem pristine bcrypt --version 3.1.12
Ignoring bindex-0.5.0 because its extensions are not built. Try: gem pristine bindex --version 0.5.0
Ignoring bootsnap-1.3.2 because its extensions are not built. Try: gem pristine bootsnap --version 1.3.2
Ignoring byebug-10.0.2 because its extensions are not built. Try: gem pristine byebug --version 10.0.2
このスレッドで多くのことを試してみましたが、うまくいきませんでした。最後に私の場合、私がやった:
brew uninstall rbenv
rm -rf ~/.rbenv
brew install rbenv
この時点ではまだエラーが発生していましたが、今では1つのRubyバージョンにしか対処できませんでした。
$ rbenv versions
* system (set by /Users/will/.rbenv/version)
この時点で、Sudo gem pristine --all
を試しましたが、システムのGemsディレクトリに対するアクセス許可が拒否されました。
だから私は通り抜けて、それぞれの宝石を手つかずに走らせました。
Sudo gem pristine bcrypt --version 3.1.12
(など)
そして最後に、エラーはなくなりました。
同じ問題があり、rbenvを使用しています。何らかの理由で、私のグローバルrbenv設定が失われました。この問題を解決するために、グローバルバージョンをrbenvバージョンの1つに設定します...例えば:
rbenv global 2.5.1
これは、Macで開発してからDockerイメージを構築するときにも問題になります。 https://forums.aws.Amazon.com/thread.jspa?messageID=879802&tstart=
"bundle install --deployment"を実行すると、Bundlerはその中にgemを含むベンダーディレクトリを作成します。これにはローカルフォルダーのgemが含まれますが、プラットフォームのネイティブ拡張のみが含まれることに注意してください。 macOSを使用している場合、これはDarwinになります。 64ビットのx86 Linux環境でプロセスを繰り返す必要があります。
Vagrantのアンインストールと再インストールも機能します。インストーラーの.dmgイメージには、Vagrantを削除するunistall.tool
bashスクリプトが含まれています。
ここでこのソリューションを見つけました: ビルトインではないVagrantおよびGemの拡張機能の更新