Quando tento configurar a instalação básica e inicialização do servidor usando Rails 4.0.0 no Ruby 2.0.0, estou enfrentando a seguinte mensagem de erro.
/usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `require': cannot load such file -- sqlite3/sqlite3_native (LoadError)
from /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `rescue in <top (required)>'
from /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:2:in `<top (required)>'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
from /home/penchal/new/site/config/application.rb:7:in `<top (required)>'
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:76:in `require'
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:76:in `block in <top (required)>'
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap'
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
Como posso evitar essa mensagem de erro e prosseguir?
ruby-on-rails
sqlite
Penchala Reddy Audireddy
fonte
fonte
Respostas:
Encontre seu arquivo gemspec sqlite3. Um exemplo é
/usr/local/share/gem/specifications/sqlite3-1.3.7.gemspec
Do Windows:
C:\Ruby21\lib\ruby\gems\2.1.0\specifications
.Você deve ajustar de acordo com o caminho do Rubygem e a versão do sqlite3. Edite o arquivo acima e procure a seguinte linha
mude para
fonte
consulte :https://stackoverflow.com/a/39136421/6755206
felizmente, você não precisa mudar para o ruby 2.0,
há uma solução para este problema, depois de tentativas intermináveis ...
https://github.com/hwding/sqlite3-ruby-win
Passos
Pré
gem uninstall sqlite3 --all
Fonte
Construir
gem install bundler
bundle install
rake native gem
Instalar
gem install --local sqlite3-xxx.gem
('xxx' é o código da versão)Verifica
irb
require 'sqlite3'
fonte
pkg
.you'll find a dir named 'pkg' generated
porque eu não vi tal diretório em lugar nenhum. A solução de @Edson Momm abaixo funcionou para mim.Como a solicitação pull # 229 foi mesclada, sqlite3 pode ser instalado por
git:
chave. É possível usar sqlite3 facilmente por meio desta adição emGemfile
:Isso funciona no RubyInstaller-2.4 e mais recente. Ele instala automaticamente o pacote pacman necessário
mingw-w64-x86_64-sqlite3
quando você executabundler install
.Existem mais algumas dicas para Rails no Windows no FAQ do RubyInstaller2 .
fonte
gem uninstall sqlite3 --all ridk exec pacman -S mingw-w64-x86_64-sqlite3 gem inst sqlite3 --platform ruby
Isso resolveu o problema para mim.
fonte
bundle install
para instalar uma nova gema, eu teria esse problema novamente e precisaria repetir as etapas acima.Basta editar o Gemfile e adicionar
gem 'sqlite3', platform: :ruby
.fonte
Nenhuma compilação dos fontes ou download de bibliotecas pré-compiladas vai resolver este problema, acredite, eu tentei de tudo, o problema está em outro lugar. É assim que funciona no Windows:
bundle update sqlite3
Você provavelmente obterá outro erro semelhante após este em relação ao nokogiri, corrija-o com o comando:
bundle update nokogiri
Aproveite seu Ruby App!
fonte
Desinstalar e reinstalar a gem sqlite3 funcionou para mim.
gem uninstall sqlite3 bundle
fonte
Isso funcionou para mim:
fonte
MELHOR INSTALAÇÃO OFICIAL
Estou usando o rails 5.2.1p57, Windows 10. Apenas executando as seguintes linhas resolveu o problema
gem uninstall sqlite3
e desinstale todas as versões instaladas. novamente execute o seguinte comando
gem install sqlite3 --platform=ruby
Agora você terminou. Avise-me se o problema persistir.
fonte
Se a primeira resposta não funcionar, uma correção que descobri é simplesmente ir para o Gemfile e adicionar o número de versão 1.3.11 (em vez de 1.3.9) logo após sqlite3. Portanto, a linha em seu Gemfile agora deve ser:
# Use sqlite3 as the database for Active Record gem 'sqlite3', '1.3.11'
fonte
Eu tive o mesmo erro ao atualizar minha versão do Ruby para 2.5.X. Eu descobri
rails task --trace
que o sqlite3 não está disponível para a versão 2.5, então eu mudo meu GemFile a gem "sqlite3" mude para "sqlite3-ruby", depois de desinstalar a gem "sqlite3" e finalmente executar obundle install
.Não sei qual é o motivo ... Eu li que "sqlite3" ainda não está disponível para ruby 2.5, mas não tenho certeza.
fonte
Para evitar este erro, certifique-se de que
gem sqlite3
foi adicionado ao seu Gemfile. Em seguida, extraia "exe" se "dll" s do link de download do Sqlite para a pasta bin do Ruby. Se o problema ainda persistir. Experimente isto:bundle update
gem uninstall sqlite3
Dada a escolha entre várias versões do sqlite3, escolha a última opção 'Todas as versões'. Insira o último número aqui
gem install sqlite3 --platform=ruby
rails s
Isso deve funcionar.
Leia este link para obter mais explicações se a descrição acima funcionar para você.
fonte
Isso também me aconteceu. Descobri que eu tinha instalado originalmente o SQLite 1.3.10, mas então copiei algumas joias do projeto de screencasts do tutorial Rails e ele listou o SQLite 1.3.9. Então eu recebi o mesmo erro que você. Mudei de volta para 1.3.10 e funcionou.
(Isso é no Windows 7. Eu estava executando o tutorial de screencast no IDE Cloud9).
fonte
Esta é a única solução que funcionou para mim, derivada desta postagem de problema no GitHub :
./configure --disable-shared
.make install DESTDIR=/c/dev/ruby/tmp
. Você pode alterar o diretório.gem uninstall sqlite3 --all
para remover todas as gemas sqlite3 existentes.gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:\dev\ruby\tmp\usr\local\include --with-sqlite3-lib=C:\dev\ruby\tmp\usr\local\lib
. Esses diretórios include e lib podem ser diferentes, então verifique primeiro.Estou usando Ruby versão 2.5.1 e Rails versão 5.2.0 no Windows 10.
fonte
Eu encontrei! Eu vi este https://www.youtube.com/watch?v=lsrzvX0qzmA
i instalei: Versão Rails: 5.2.1 Versão Ruby: 2.5.3 (x64-mingw32) Sqlite versão 1.3.13
e eu tenho o seu problema .. . minha solução:
você tem as pastas: "sqlite3-1.3.13" "sqlite3-1.3.13-x64-mingw32"
C: \ Ruby25-x64 \ lib \ ruby \ gems \ 2.5.0 \ gems \ sqlite3-1.3.13 \ lib \ sqlite3 \ sqlite3_native.so
fonte
Atualizada
Adicionando o seguinte ao Gemfile corrigido para mim: gem 'sqlite3', '1.4.0', plataformas:: ruby
fonte
Altere sua gem sqlite3 no Gemfile para isso:
Então corra:
bundle install
fonte
Para usuários OSX, isso pode resultar do uso de um gerenciador de ruby (por exemplo, rvm).
Se você editar seu ~ / .bash_profile e adicionar este:
[[ "$APP" = *"/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"* ]] && { echo Xcode detected rvm use system }
Você pode contornar o problema. Reinicie o Xcode antes de tentar construir novamente.
O problema real é rastreado aqui: https://openradar.appspot.com/28726736 ).
O crédito total vai para: https://egeek.me/2018/04/14/ipa-export-error-in-xcode-and-ruby/
fonte