OS X 10.9上のRuby拡張機能が構築されていないためgemを無視する


36

knifeOS X(他の環境、Linux、FreeBSDなどでは複製できない)でRuby CLI(特にChef のユーティリティを使用)でさまざまなことを行うと、数日ごとにこれが発生します。

Ignoring bcrypt-3.1.7 because its extensions are not built.  Try: gem pristine bcrypt-3.1.7
Ignoring bigdecimal-1.2.5 because its extensions are not built.  Try: gem pristine bigdecimal-1.2.5
Ignoring ffi-yajl-1.1.0 because its extensions are not built.  Try: gem pristine ffi-yajl-1.1.0
Ignoring gem-wrappers-1.2.5 because its extensions are not built.  Try: gem pristine gem-wrappers-1.2.5
Ignoring gem-wrappers-1.2.4 because its extensions are not built.  Try: gem pristine gem-wrappers-1.2.4
Ignoring pg-0.17.1 because its extensions are not built.  Try: gem pristine pg-0.17.1
Ignoring psych-2.0.6 because its extensions are not built.  Try: gem pristine psych-2.0.6
Ignoring sqlite3-1.3.9 because its extensions are not built.  Try: gem pristine sqlite3-1.3.9

そして、それは簡単な修正ですが、それは起こり続けます。これに出会った人はいますか?

$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin11.2.0]

回答:


5

私は最近toに切り替えて実行しrvmましたがchruby、それはgem update --system私にとって問題が発生し始めたときです。その後、バンドルを実行したときはいつでも、同じ警告で虐殺されました。どちらが問題の原因なのかまだわかりません。

Ignoring curb-0.8.6 because its extensions are not built. Try: gem pristine curb-0.8.6

何がそれを修正したのかわからないが、私は2つのことをし、警告は消えた:

gem uninstall bundler
gem install bundler

gem install curb

奇妙なことに、OS XにバンドルされたRubyからRVMに切り替えたとき、それが始まりました。一般に、数日後に自動的にクリアされるか、新しいセッションを開くとクリアされます(正午に発生するのは面倒です)。一般的に、特定の時間に使用しているものはすべて再インストールする必要があります。通常はナイフです。
tony_perkis666 14年

それは私のマシン上の何十もの宝石のために起こっていました。私は、彼らはちょうど再構築する必要があったと思う
lfender6445

私自身は、警告を発している各gemをアンインストールしてから再インストールしbundle install
なければなりませんでした

「屠殺された」-わあ。
B 7年

私が何をしようとしてもYou don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory、それらの問題は独力で始まり、私が知っているすべてにルビーを使用することすらありません。しかしclocale-0.0.3、新しいシェルを開始するたびにビルドされない拡張機能に関するエラーが発生します
Vadorequest

62

私の場合、インストール後にこのエラーが表示され始めます rvm

私はそのような問題を解決します: gem pristine --all


どのような便利なコマンド
-lfender6445

2
これはうまくいきました...しかし、私は理由が
わかり

1
バンドラーのアンインストールとインストールが機能しませんでした。しかし、これはうまくいきました!ありがとう!
Srikanth Jeeva

3
これは受け入れられた答えであるべきでした。
ILikeTurtles

19

現在実行中の別のlibrubyに対してgemがコンパイルされた場合、この問題が発生します。たとえば、chrubyを使用してホームディレクトリにあるルビーを使用し、gemsを〜/ .gem / ruby​​にインストールするが、そこにインストールされたgemを再利用する/ usr / bin / ruby​​を呼び出すスクリプトを実行する場合。この場合gem pristine --all、gemは1つのrubyバージョンに対してのみリンクできるため、役に立ちません。


ありがとうございます!「rails s」を実行すると、このエラーが発生しました。「バンドルexec rails s」に切り替えたところ、問題はなくなりました。
ジェリー

1
これは受け入れられる答えである必要があります
ドミニクシュライバー

1
この答えは正しいです。gemが保存されているRailsリポジトリで問題が発生した場合はvendor/bundle、で削除し、rm -rf vendor/bundleで再インストールしますbundle install
-vmarquet

ありがとうございました。私gem pristine --allは顔が青くなるまで試しましたが、なぜそれがうまくいかなかったかを知っています
...-GDP2


2

これはMacOs Sierraで私のために働いた:

xcode-select --install
gem install nokogiri

上記のコマンドを実行する前にxcode全体を既にインストールしていましたが、おそらく最初のスクリプトがいくつかの内部ライブラリ/依存関係を更新するため、これを行う必要がありました。


これが、私がMacOS Sierraソリューションを探していたものです。ありがとう
サカレス

1

適切なバージョンのrubyに対して「gem pristine --all」を実行していることを確認してください。/ usr / bin / ruby​​が呼び出されている場合は、「/ usr / bin / gem pristine --all」を使用します。rvmを使用していて、10個のバージョンのrubyがインストールされている場合、これは明らかではありません。

これは私の問題を1日修正し、その後戻ってきました。

より永続的な解決策と思われるのは、「rvm reset」を実行して、デフォルトのrubyをインストール済みのOSXバージョン/ usr / bin / ruby​​および/ usr / bin / gemにすることです。プロジェクトに新しいバージョンのrubyを使用する場合は、プロジェクトルートディレクトリで.ruby-versionおよび.ruby-gemsetを使用して、使用するrubyのバージョンを明示的に設定します。理想的ではありません...しかし、このエラーは消えるはずです。



0

私はレールに慣れていないので、これは完全に見当違いのアドバイスかもしれませんが、他のソリューションはどれも役に立たなかったので、私は私のものを共有すると思いました。

Mic92とGerryが私を正しい方向に導きました。私はrails sプロジェクトのバージョンとは異なるバージョンのRailsを実行するため、エラーを引き起こす可能性があります。

に接続しようとしましたbin/rails serverが、別のエラー(宝石が見つかりません)が表示されたので、実行しましたbundle install

この時点で、3番目のエラー(「互換性のないライブラリバージョン」)が発生spring stopしました。

その後、私はrails generate controller再び走り、春が再開し、すべてが機能しました(私は少し泣きました)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.