OS X 10.9'da Ruby. Eklentiler inşa edilmediğinden taşları görmezden gelmek


36

Birkaç günde bir knifeOS X üzerinde Ruby CLI'da (özellikle, Chef'in yardımcı programını kullanarak) çeşitli şeyler yaparken (diğer ortamlarda çoğaltılamıyor; Linux, FreeBSD, vb.):

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

Ve basit bir düzeltme olsa da, devam ediyor. Daha önce hiçkimse bununla karşılaştı mı?

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

Yanıtlar:


5

Geçenlerde gelen geçiş rvmiçin chrubyve ran gem update --systemsorunu benim için meydana başladı tamam. Ondan sonra, koştuğum her zaman aynı uyarılara katlandım. Soruna hangisinin yol açtığından hala emin değilim.

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

Neyi düzelttiğinden emin değilim, ama 2 şey yaptım ve uyarı kayboldu:

gem uninstall bundler
gem install bundler

gem install curb

İşin garibi, OS X paketli Ruby'den RVM'ye geçtiğimde benim için başladı. Genellikle birkaç gün sonra kendi kendine temizlenir veya yeni bir oturum açarsam (bu, öğle vakti olduğunda bir tür güçlüktür). Genelde, belirli bir zamanda ne kullanıyorsam onu ​​yeniden kurmak zorundayım ve bu genellikle Bıçak.
tony_perkis666

makinemde onlarca değerli taş oldu. sadece yeniden inşa edilmek zorunda kaldıklarını düşünüyorum
lfender6445

Kendim için, uyarmakta olduğu her taşı kaldırmak zorunda kaldım ve sonra yeniden kurdumbundle install
Noah Passalacqua

"Ben katledildi" - vay.
B Seven

Ne denersem deneyeyim You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory, bu sorunlar kendi başıma başladı, bildiğim kadarıyla yakut kullanmıyorum bile. Ancak clocale-0.0.3ne zaman yeni bir kabuk başlattığım zamanlar için inşa edilmemiş hatalar alıyorum
Vadorequest

62

Benim durumumda kurduktan sonra bu hataları görmeye başladım rvm

Böyle bir sorunu çözerim: gem pristine --all


ne yararlı bir komut
lfender6445

2
Bu işe yaradı ... Fakat nedenini bilmiyorum
Hubro

1
paketleyiciyi kaldırma ve yükleme işe yaramadı. Ama bu işe yaradı! Teşekkürler!
Srikanth Jeeva

3
Bu kabul edilen cevap olmalıydı.
ILikeTurtles

19

Bir mücevher şu anda çalışan olarak farklı bir kitaplığa karşı derlendi, bu sorun oluşur. Örneğin, biri ev dizininde yer alan bir yakutun chruby ile kullanılması ve ~ / .gem / ruby'ye değerli taşlar takması durumunda, ancak orada yüklü olan taşları yeniden kullanan / usr / bin / ruby'yi çağıran bir komut dosyası çalıştırırsa. Bu durumda gem pristine --allyardımcı olmaz, çünkü taşlar sadece bir yakut versiyonuna karşı bağlanabilir.


Ahhhh teşekkür ederim! "Rails s" çalıştırırken bu hatayı alıyordum. "Bundle exec rails s" ye geçtim ve sorun yok oldu.
Gerry

1
bu kabul edilen cevap olmalıdır
Dominik Schreiber

1
Bu cevap doğru. Sorun, mücevherlerin kaydedildiği bir Rails deposunda gerçekleşirse vendor/bundle, bunları silin rm -rf vendor/bundleve yeniden yükleyin bundle install.
vmarquet

Teşekkür ederim. gem pristine --allYüzüme mavi kalana kadar çalıştım ve şimdi neden işe yaramadığını biliyorum ...
GDP2


2

Bu benim için MacOs Sierra'da işe yaradı:

xcode-select --install
gem install nokogiri

Yukarıdaki komutları çalıştırmadan önce xcode'un tamamını zaten kurmuştum, fakat bunu yine de yapmak zorunda kaldım, belki de ilk komut dosyası bazı dahili kütüphaneleri / bağımlılıkları güncelledi.


MacOS Sierra çözümü için aradığım şey buydu. Teşekkürler
Sakares

1

Yakut doğru sürümü için "mücevher bozulmamış - tüm" çalıştırdığınızdan emin olun. Eğer / usr / bin / ruby ​​deniyorsa ... "/ usr / bin / gem pristine --all" komutunu kullanın. Eğer rvm kullanıyorsanız ve takılı 10 versiyonunuz varsa, bu açık değildir.

Bu bir günlüğüne sorunumu çözdü ve sonra geri geldi.

Daha kalıcı bir çözüm gibi görünen şey, varsayılan yakutun kurulu olduğu OSX sürümü / usr / bin / ruby ​​ve / usr / bin / gem olması için "rvm reset" yapmaktır. Bir proje için daha yeni bir yakut sürümü kullanmak istersem, açıkça kullanmak istediğim yakut sürümünü ayarlamak için proje kök dizininde .ruby sürümü ve .ruby-gemset'i kullanıyorum. İdeal değil ... ama bu hatayı ortadan kaldırmalı.


0

Benim durumumda:

rvm get stable

sudo gem pristine --all


0

Raylarda çok yeniyim, bu yüzden bu tamamen yanlış yönlendirilmiş bir tavsiye olabilir, ancak diğer çözümlerin hiçbiri benim için işe yaramadığı için benimkini paylaşacağımı düşündüm.

Mic92 ve Gerry beni doğru yola koydu: Hatalara rails sneden olan kullanıyordum , çünkü projenin versiyonundan farklı bir versiyon olan ray versiyonunu kullanıyor.

Bağlanmaya çalıştım bin/rails server, farklı bir hata aldım (kayıp taşlar) bu yüzden koştumbundle install

Bu noktada, üçüncü bir hata ("uyumsuz kitaplık sürümü") ile karşılaştım spring stop.

Sonra rails generate controllertekrar koştum , bahar yeniden başladı ve her şey çalıştı (biraz ağladım).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.