Каждые несколько дней это происходит при выполнении различных действий в Ruby CLI (в частности, с использованием knife
утилиты Chef) в 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]
bundle install
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory
, эти проблемы начались сами собой, я даже не использую рубин, насколько мне известно. Но я получаю ошибки о расширениях, не созданных дляclocale-0.0.3
В моем случае я начинаю видеть эти ошибки после установки
rvm
Я решаю такую проблему с:
gem pristine --all
источник
Эта проблема возникает, если гем был скомпилирован с другим libruby, как в настоящее время работает. Например, если кто-то использует ruby, расположенный в его домашнем каталоге с chruby, и устанавливает gems в ~ / .gem / ruby, но запускает скрипт, который вызывает / usr / bin / ruby, который повторно использует установленные там гемы. В этом случае
gem pristine --all
это не поможет, потому что драгоценные камни могут быть связаны только с одной рубиновой версией.источник
vendor/bundle
, просто удалите их с помощьюrm -rf vendor/bundle
и переустановите их с помощьюbundle install
.gem pristine --all
пока мне не сталоЯ исправил это:
https://github.com/rvm/rvm/issues/3348
источник
Это работало для меня на MacOs Sierra:
Я уже установил весь xcode до запуска вышеуказанных команд, но мне все равно пришлось это сделать, возможно, потому что первый скрипт обновляет некоторые внутренние библиотеки / зависимости.
источник
Убедитесь, что вы используете "gem pristine --all" для правильной версии ruby. Если вызывается / usr / bin / ruby ... используйте "/ usr / bin / gem pristine --all". Это не очевидно, если вы используете rvm и у вас установлено 10 версий ruby.
Это исправило мою проблему на один день, а потом вернулось.
То, что кажется более постоянным решением, это сделать «rvm reset», чтобы по умолчанию был установлен ruby с установленными версиями OSX / usr / bin / ruby и / usr / bin / gem. Если я хочу использовать более новую версию ruby для проекта, я использую .ruby-version и .ruby-gemset в корневом каталоге проекта, чтобы явно установить версию ruby, которую я хочу использовать. Не идеально ... но это должно исправить эту ошибку.
источник
В моем случае:
rvm get stable
sudo gem pristine --all
источник
Я очень плохо знаком с рельсами, так что это может быть совершенно неверный совет, но так как ни одно из других решений не сработало для меня, я решил поделиться своим.
Mic92 и Gerry поставили меня на правильный путь: я использовал,
rails s
что может привести к ошибкам, потому что он использует версию rails, которая может отличаться от версии проекта.Я пытался связаться с
bin/rails server
, я получил другую ошибку (пропущенные драгоценные камни), поэтому я побежалbundle install
В этот момент я получил третью ошибку («несовместимая версия библиотеки»), которая
spring stop
вылечила.Потом я
rails generate controller
снова побежал , весна перезапустилась и все заработало (я немного заплакала).источник