A cada poucos dias, isso acontece ao fazer várias coisas no Ruby CLI (principalmente, usando o knife
utilitário Chef) no OS X (incapaz de replicar em outros ambientes; Linux, FreeBSD, etc.):
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
E, embora seja uma solução simples, continua acontecendo. Alguém já passou por isso antes?
$ 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
, esses problemas começaram por conta própria, nem estou usando ruby para tudo o que sei. Mas eu recebo erros sobre extensões que não foram criadasclocale-0.0.3
sempre que inicio um novo shellNo meu caso, começo a ver esses erros após a instalação
rvm
Eu resolvo esse problema com:
gem pristine --all
fonte
Esse problema ocorre se uma gema foi compilada em um bibliotecário diferente do atualmente em execução. Por exemplo, se alguém usa um ruby localizado em seu diretório pessoal com o chruby e instala gems em ~ / .gem / ruby, mas executa um script que chama / usr / bin / ruby, que reutiliza as gems instaladas lá. Nesse caso
gem pristine --all
, não ajudará, porque as gemas podem ser vinculadas apenas a uma versão ruby.fonte
vendor/bundle
, exclua-asrm -rf vendor/bundle
e reinstale-asbundle install
.gem pristine --all
até ficar com o rosto azul e agora eu sei por que não funcionou ...Corrigi isso da seguinte maneira:
https://github.com/rvm/rvm/issues/3348
fonte
Isso funcionou para mim no MacOs Sierra:
Eu já tinha instalado o xcode inteiro antes de executar os comandos acima, mas precisava fazer isso de qualquer maneira, talvez porque o primeiro script atualize algumas bibliotecas / dependências internas.
fonte
Verifique se você está executando o "gem pristine --all" para a versão correta do ruby. Se / usr / bin / ruby estiver sendo chamado ... use "/ usr / bin / gem pristine --all". Isso não é óbvio se você estiver usando o rvm e tiver 10 versões do ruby instaladas.
Isso resolveu meu problema por um dia e depois voltou.
O que parece ser uma solução mais permanente é fazer "rvm reset" para que o ruby padrão seja a versão OSX instalada / usr / bin / ruby e / usr / bin / gem. Se eu quiser usar uma versão mais recente do ruby para um projeto, use .ruby-version e .ruby-gemset no diretório raiz do projeto para definir explicitamente a versão do ruby que eu quero usar. Não é o ideal ... mas deve fazer com que esse erro desapareça.
fonte
No meu caso:
rvm get stable
sudo gem pristine --all
fonte
Eu sou muito novo em trilhos, então isso pode ser um conselho completamente errado, mas como nenhuma das outras soluções funcionou para mim, pensei em compartilhar o meu.
Mic92 e Gerry me colocaram no caminho certo: eu estava usando o
rails s
que pode causar erros porque ele executa uma versão rails que pode ser uma versão diferente da do projeto.Tentei me conectar
bin/rails server
, recebi um erro diferente (falta de gemas) e corribundle install
Nesse ponto, recebi um terceiro erro ("versão incompatível da biblioteca"), que foi
spring stop
solucionado.Então corri
rails generate controller
novamente, a primavera recomeçou e tudo deu certo (chorei um pouco).fonte