Nos meus computadores de trabalho e domésticos, atualizei recentemente o Ruby para a 2.3.1, usando ruby-install
. eu usochruby
como meu switcher Ruby.
Comecei a ver este aviso no meu terminal:
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
No meu trabalho, computador, a lista era muito mais longa, mas fácil de resolver. Quando tentei o sugerido gem pristine GEM
, ele me disse que não conseguia encontrar a gema, então corrigem install GEM
e isso foi resolvido.
Em casa, nada está funcionando.
Coisas que eu tentei, do senso comum e várias outras perguntas da pilha:
gem pristine GEM
gem pristine --all
- desinstalando e reinstalando a gema
gem update
gem update --system
bundle update
- desinstalando e reinstalando
bundler
- desinstalando e reinstalando
rails
(Embora não seja um problema específico do Rails.) - excluindo
~/.bundle/
- abertura
XCode
e permitir que ele instale algumas extensões (ele precisava fazê-lo, mas não corrigiu nada). - executando
brew doctor
e resolvendo todos os problemas menores, entãobrew update
ebrew upgrade
gem install curb
(Não consigo imaginar o que essa gema tem a ver com esse problema, mas duas pessoas diferentes a listaram como a última etapa de sua correção para o mesmo aviso.)
bcrypt
e ele ainda me deu dois avisos sobre isso.gem pristine --all
não funcionou. Resolvido excluindo todas as jóias, incluindo o empacotador. Em seguida, instalado bundlergem install bundler
e, finalmente, navegado de volta para o meu projeto e correubundle install
que reinstalar todos os meus jóias e tudo está funcionandoRespostas:
Hoje me deparei com esse problema exato - recebendo avisos como este para gemas que nem estavam instaladas!
... Bem, as gemas foram instaladas - para um rubi diferente daquele que eu havia ativado no chruby (2.2.3 vs 2.3.1).
Mudar para todos os diferentes rubis e rodar
gem pristine --all
em todos eles resolveu o problema.fonte
gem pristine --all
não é bom. Veja esta resposta em Ask Different para mais informações.gem pristine --all
houver problemas de permissão, verifiquewhich ruby
.brew link --overwrite ruby && source ~/.bash_profile
e executargem pristine --all
a ajuda podeEu corri para esse problema e segui os mesmos comandos acima, até o ponto de remover todas as versões do Ruby instaladas anteriormente. No entanto, o erro persistiu.
Acontece que havia algumas pedras preciosas nas várias versões (desinstaladas anteriormente) do
~/.gem/ruby/
. Depois de remover as pastas que não usei mais, os erros desapareceram.fonte
Também tive esse problema hoje e ele ficou frustrado porque não sabia digitar porque meu editor inteiro piscou em vermelho com mensagens de erro.
Não sei ao certo o que exatamente o causou, mas acredito que é porque temos várias versões ruby OU vários gerenciadores de versão ruby instalados e elas se sobrescrevem e, de outra forma, atrapalham seus caminhos em direção às gemas.
O
gem
comando também é substituído quando você tem rbenv e rvm.Veja quais você instalou digitando;
Se um deles estiver instalado, ele retornará um caminho. Em seguida, exclua-os, certifique-se de limpar completamente todos os diretórios e comece com uma instalação limpa.
Remover
Aqui está o que eu fiz para o rvm ;
Aqui está o que eu fiz para rbenv
Primeiro instale https://github.com/meowsus/rbenv-clean e , em seguida,
Reinstalar
Então você tem um diretório inicial limpo para trabalhar. Reinstalei o rbenv com Como instalar o Ruby 2.1.4 no Ubuntu 14.04 . E finalmente;
fonte
Eu fiz tudo mencionado acima, incluindo
mas o problema era o mesmo para mim. Acabei de reiniciar o meu Mac como a última esperança e as mensagens de aviso desapareceram.
Estranho, mas se alguém tiver problemas com esse problema depois de tentar tudo no StackOverflow, tente reiniciar sua máquina.
fonte
Se você instalou o RVM, é possível que você esteja capturando o erro porque instalou versões diferentes.
Verifique e remova versões inúteis, mas acho que essa não é uma boa abordagem. Enfim erros foram.
Após a atualização dos cocoapods, ele deve ser injetado em .rvm GEM_HOME
Provavelmente
pod COMMAND
irá lançar o erro sobreminitest
gem, então -gem install minitest
fonte
TL; DR - As gemas Ruby não gostam de Rubis que são executadas a partir de links simbólicos ou movidas de onde foram construídas (devido a shebangs incorporados)
Se o diretório Ruby for chamado ou os vars de ambiente apontarem para um diretório com link simbólico ou forem copiados ou renomeados, é provável que esta mensagem seja. Estou usando o chruby e estava simbolizando
/opt/rubies/
->/usr/local/ruby/
, mas a lógica dinâmica de localização de bibliotecas do Ruby não funciona bem com isso.A solução no meu caso foi substituir o link simbólico por rubis reais
/opt/rubies/
e executargem pristine --all
em cada Ruby. Para outros que usam RVM ou Rbenv, boa sorte com isso sem começar do zero.Este pode não ser o seu problema exato, mas espero que ajude.
fonte
gem pristine --all
de todos eles. Obrigado por ressuscitar esta questão morta. Eu estava quase queimando tudo e recomeçando.Adicionando meu próprio sabor aqui. Eu uso
rbenv
instalado via Homebrew e estava recebendo quatro dessas mensagens "ignorando ... extensões não construídas". Especificamente:Eu tentei muitas coisas neste tópico sem sorte. Finalmente, no meu caso, fiz:
brew uninstall rbenv
rm -rf ~/.rbenv
brew install rbenv
Neste ponto, eu ainda estava recebendo os erros, mas agora tinha apenas uma versão do Ruby para lidar com:
Neste ponto, tentei,
sudo gem pristine --all
mas fui rejeitado por permissões no diretório Gems do sistema.Então eu passei e corri intocada em cada jóia, como
sudo gem pristine bcrypt --version 3.1.12
(etc)E finalmente os erros se foram.
fonte
Esse é um tópico antigo, mas eu mesmo me deparei com esse problema.
Você não precisa reiniciar sua máquina, apenas atualiza seu ambiente; pode fazer isso com o comando rehash:
Na página do manual:
rehash command re-computes the internal hash table of the contents of directories listed in the path environmental variable to account for new commands added.
fonte
rehash
ouhash -r
para bash é um comando shell disponível no * nix. Quando o shell C é iniciado, ele cria uma tabela de hash de todos os comandos em seu caminho: cada nome de comando e seu nome de caminho absoluto. Portanto, após iniciar uma execução do csh, se novos programas forem adicionados aos diretórios ao longo do caminho, você precisará usar o comando rehash do shell para reconstruir sua tabela de hash. (cf: docstore.mik.ua/orelly/unix3/upt/ch27_06.htm )Eu tive esse problema, mas somente quando estava iniciando a
tmux
sessão usandotmuxinator
.Descobri que é porque eu estou usando
tmuxinator
from embrew
vez de instalá-lo usandogem install
. Talvez o usochruby
ao mesmo tempo tenha contribuído para o problema também.p / s: Também removi o ruby não utilizado,
~/.gem/ruby
mas duvido que esse seja o motivo pelo qual esse problema foi resolvido.fonte
A execução
gem pristine --all
não ajudou no começo, mas então percebi: o script que eu estava executando começou com a linha:#!/usr/bin/ruby
No meu sistema macOS (Catalina, mas acho que não importa), isso aponta para o Ruby que acompanha o sistema, não o instalado pelo RVM. Corrida
gem pristine --all
estava consertando a instalação do RVM, mas meu script estava chamando uma versão diferente do Ruby.A correção para mim foi usar o
env
comando para chamar o Ruby especificado nos shell atuaisPATH
. Alterando a linha superior do script para isso, foi corrigido:#!/usr/bin/env ruby
fonte
bundle install
instalou as gemas (e suas extensões nativas) para o ruby selecionado por meio do switcher RVM Ruby, onde um script referente ao sistema Ruby não pode encontrá-las. Sua solução é a prática padrão para fazer com que scripts e gemas Ruby funcionem com rubis instalados pelo usuário ( consulte ).apt purge tmuxinator
e depoisgem install tmuxinator
deu certo. Provavelmente vou precisar instalá-lo sempre que atualizar minha versão ruby que não é do projeto, mas gosto mais disso. Obrigado!Executando o Mac OS Catalina, brew e rbenv ...
Tendo encontrado esse problema exato hoje e analisado todas as respostas aqui, acabei encontrando outra razão para esse erro:
Ignoring nokogiri 1.10.7 because its extensions are not built. Try: gem pristine nokogiri --version 1.10.7
E, claro, a jóia intocada não funcionou.
Meu problema foi um variáveis de ambiente GEM_HOME e GEM_PATH codificadas que estavam substituindo rbenv.
Portanto, verifique se você não configurou GEM_PATH e GEM_HOME em ~ / .zshrc
fonte
Desinstalar e reinstalar o Vagrant também funciona. Há um
unistall.tool
script bash incluído na imagem .dmg do instalador que removerá o Vagrant.Encontre esta solução aqui: Atualizando extensões Vagrant e Gems não incorporadas
fonte
Eu tive o mesmo problema e estou usando o rbenv. Por alguma razão, minha configuração global de rbenv desapareceu. Para corrigir esse problema, defino a versão global como uma das minhas versões rbenv ... por exemplo:
rbenv global 2.5.1
fonte
Isso também é um problema quando você está desenvolvendo no Mac e cria uma imagem do Docker: https://forums.aws.amazon.com/thread.jspa?messageID=879802&tstart=0
fonte
A sugestão de Libby de apenas iniciar uma nova sessão de terminal (que ela comentou sobre a resposta de Sebastian Kim) funcionou para mim. Muito mais rápido do que qualquer um dos outros também, então eu queria dar uma resposta para ficar mais visível.
fonte
No meu caso, eu estava tentando executar,
pristine --all
mas estava obtendo:Em seguida, apaguei o conteúdo
Users/{{user.name}}/.gem
e, como precisava executarbundle install --force
, reinstalei tudo e o comandopristine --all
funcionou conforme o esperadofonte
Esta solução funcionou para mim no RubyMine IntelliJ
Eu tinha dois terminais diferentes sendo usados e
RVM
eruby<Version>
.Solução:
Eu tive que mudar para a versão RVM para que os erros desaparecessem
Preferences>Languages&Frameworks>Ruby SDK
Erros:
fonte