Игнорирование GEM, потому что его расширения не построены
на моем рабочем и домашнем компьютерах я недавно обновил Ruby до 2.3.1, используя ruby-install. Я использую chruby как мой рубиновый переключатель.
я начал видеть это предупреждение в мой терминал:
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 install GEM, и это решено.
дома, ничего не работает.
вещи у меня есть пробовал, из здравого смысла и различных других вопросов стека:
gem pristine GEMgem pristine --all- удаление и переустановка gem
gem updategem update --systembundle update- удалить и переустановить
bundler
- удалить и переустановить
rails(хотя, это не конкретная проблема рельсов.) - удаление
~/.bundle/
- открытие
XCodeи позволить ему установить некоторые расширения (ему действительно нужно было это сделать, но он ничего не исправил.) - под управлением
brew doctorи решить все мелкие вопросы, тоbrew updateиbrew upgrade
gem install curb(я не могу себе представить, что этот камень имеет отношение к этой проблеме, но два разных человека перечислили его как последний шаг их исправления к одному и тому же предупреждению.)
7 ответов:
я наткнулся на эту точную проблему сегодня-получение предупреждений, как это для драгоценных камней, которые даже не были установлены!
... Ну вот и получается самоцветы были установлен-для другого Рубина, чем тот, который я установил активным с помощью chruby (2.2.3 vs 2.3.1).
переключение на все рубины и под управлением
gem pristine --allна всех из них решена проблема.
я столкнулся с этой проблемой и следовал всем тем же командам, что и выше, даже зайдя так далеко, чтобы удалить все мои ранее установленные версии Ruby. Однако ошибка сохранялась.
оказывается, были некоторые оставшиеся драгоценные камни для различных (ранее неустановленных) версий в
~/.gem/ruby/. После удаления папок, которые я больше не использовал, ошибки исчезли.
у меня тоже была эта проблема сегодня, и это расстроило, потому что я не мог печатать, потому что весь мой редактор мигал красным цветом с сообщениями об ошибках.
Я не совсем уверен, что именно вызвало это, но я верю, что это потому что у нас есть несколько версий ruby или несколько менеджеров версий rubyустановлен и они перезаписывают друг друга и в противном случае испортить ваши пути к драгоценным камням.
The
gemкоманда также перезаписывается, когда у вас есть rbenv и РВМ.смотрите, какие из них вы установили, введя;
which rvm which rbenv which chrubyесли один из них установлен, он вернет путь. Затем удалить их, убедитесь, что полностью очистить все каталоги и начать с чистой установки.
удалить
вот что я сделал для РВМ;
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переустановить
тогда у вас есть чистый домашний каталог для работы. Я reïnstalled rbenv с Как установить Ruby 2.1.4 на Ubuntu 14.04. И, наконец;
rbenv rehash
TL;DR - Ruby gems не любят рубины, запущенные из символических ссылок или перемещенные оттуда, где они были построены (из-за встроенных shebangs)
если каталог Рубин вызывается или окружающей среде Варс указывать на каталог, символьная ссылка объед, или скопирован или переименован, это сообщение, скорее всего. Я использую chruby и был symlinking
/opt/rubies/->/usr/local/ruby/, но динамическая логика поиска библиотек Ruby не очень хорошо с этим справляется.решение в моем случае было заменить символическую ссылку на фактическую рубины в
/opt/rubies/и работатьgem pristine --allв каждом Руби. Для других, использующих RVM или Rbenv, удачи с этим, не начиная с нуля.это может быть не ваша точная проблема, но, надеюсь, это поможет.
Я сделал все выше, в том числе
- xcode-select --install
- переустановить ruby
- переустановить все драгоценные камни
- драгоценный камень первозданный -- все
но проблема была такой же для меня. Я просто перезагрузил свой Mac как последнюю надежду, и предупреждающие сообщения исчезли.
странно, но если кто-то борется с этой проблемой после попытки все, на StackOverflow, попробуйте перезагрузить компьютер.
если вы установили RVM, возможно, вы ловите ошибку, потому что вы установили разные версии.
проверьте и удалите бесполезные версии, но я думаю, что это не хорошо подход. В любом случае ошибки нет.
rvm list rvm use ruby-version rvm remove ruby-useless-versionпосле обновления cocoapods, он должен быть введен .rvm GEM_HOME
gem uninstall cocoapods gem install cocoapodsнаверное
pod COMMANDвыдаст ошибку оminitestдрагоценный камень, так что -gem install minitest
удаление и переустановка Vagrant также работает. Там есть
unistall.toolскрипт bash включен в установщик .dmg изображение, которое удалит Бродяга.нашел это решение здесь: обновление Vagrant и драгоценные камни расширений, которые не построили в
Comments