Ruby на OS X 10.9 Ігнорування дорогоцінних каменів, оскільки розширення не побудовані


36

Кожні кілька днів це відбуватиметься, коли ви робите різні речі в Ruby CLI (особливо, використовуючи knifeутиліту для шеф-кухаря) на OS X (не в змозі копіювати в інших середовищах; Linux, FreeBSD тощо):

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

Я недавно перейшов на від 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

Як не дивно, це почалося для мене, коли я перейшов з ОС X-пакету Ruby на RVM. Як правило, він очищається самостійно через декілька днів або якщо я відкрию нову сесію (що є своєрідними клопотами, коли це відбувається вдень). Я, як правило, повинен перевстановити все, що я використовую в даний момент часу, і це зазвичай Knife.
tony_perkis666

це відбувалося за десятки дорогоцінних каменів на моїй машині. Я думаю, що їх просто довелося перебудувати
lfender6445

Для себе мені довелося видалити кожен дорогоцінний камінь, який він попереджає, а потім перевстановитиbundle install
Ноа Пассалакква

"Мене забили" - вау.
B Сім

Що б я не намагався отримати 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
Це спрацювало ... Але я поняття не маю, чому
Hubro

1
видалення постачальника та встановлення не працювали. Але цей працював! Спасибі!
Srikanth Jeeva

3
Це повинна була бути прийнята відповідь.
ILikeTurtles

19

Ця проблема виникає, якщо дорогоцінний камінь був складений проти іншого лібрубі, як поточний. Наприклад, якщо використовується рубін, розташований у його домашньому каталозі, з chruby та встановлює дорогоцінні камені до ~ / .gem / ruby, але запускає скрипт, який викликає / usr / bin / ruby, який повторно використовує встановлені там самоцвіти. У цьому випадку gem pristine --allне допоможе, адже дорогоцінні камені можна пов’язати лише проти однієї версії рубіну.


А-а-а, дякую! Я отримував цю помилку під час запуску "rails s". Я перейшов на "randle exec rails s", і проблема зникла.
Джеррі

1
це має бути прийнята відповідь
Домінік Шрайбер

1
Ця відповідь правильна. Якщо проблема трапляється у сховищі Rails, де зберігаються дорогоцінні камені vendor/bundle, просто видаліть їх rm -rf vendor/bundleта заново встановіть їх bundle install.
vmarquet

Дякую. Я намагався, gem pristine --allпоки я не став синім обличчям, і тепер я знаю, чому це не вийшло ...
ВВП2


2

Це працювало для мене на MacOs Sierra:

xcode-select --install
gem install nokogiri

Я вже встановив весь xcode до запуску вищезазначених команд, але мені довелося це робити все одно, можливо, тому що перший скрипт оновлює деякі внутрішні бібліотеки / залежності.


Це те, що я шукав рішення MacOS Sierra. Спасибі
Сакарес

1

Переконайтеся, що ви використовуєте "gem pristine - all" для правильної версії ruby. Якщо / usr / bin / ruby ​​викликається ... використовуйте "/ usr / bin / gem pristine - все". Це не очевидно, якщо ви використовуєте rvm та у вас встановлено 10 версій ruby.

Це вирішило мою проблему на один день, а потім вона повернулася.

Більш постійним рішенням є те, щоб зробити "rvm reset", щоб рубітом за замовчуванням була встановлена ​​версія OSX / usr / bin / ruby ​​та / usr / bin / gem. Якщо я хочу використовувати нову версію ruby ​​для проекту, я використовую .ruby-version та .ruby-gemset у кореневому каталозі проекту, щоб явно встановити версію ruby, яку я хочу використовувати. Не ідеально ... але це має призвести до усунення цієї помилки.



0

Я дуже новачок у рейках, тому це може бути абсолютно помилковою порадою, але оскільки жодне з інших рішень для мене не працювало, я думав, що поділюсь своїм.

Mic92 та Геррі поставили мене на правильний шлях: я використовував, rails sщо може спричинити помилки, оскільки він працює з рельсовою версією, яка може бути іншою версією, ніж версія проекту.

Я намагався зв'язатись bin/rails server, у мене з’явилася інша помилка (відсутні дорогоцінні камені), тому я побігbundle install

У цей момент у мене виникла третя помилка ("несумісна бібліотечна версія"), яку spring stopвилікували.

Потім я rails generate controllerзнову побіг , весна перезапустилася і все спрацювало (я трохи заплакала).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.