当我尝试在Ruby 2.0.0上使用Rails 4.0.0设置基本安装和启动服务器时,我面临以下错误消息。
/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>'
如何避免此错误消息并继续进行?
答案 0 :(得分:118)
找到你的sqlite3 gemspec文件。一个例子是/usr/local/share/gem/specifications/sqlite3-1.3.7.gemspec
视窗:
C:\Ruby21\lib\ruby\gems\2.1.0\specifications
。
您应该根据您的Rubygem路径和sqlite3版本进行调整。 编辑上面的文件并查找以下行
s.require_paths=["lib"]
将其更改为
s.require_paths= ["lib/sqlite3_native"]
答案 1 :(得分:19)
见:https://stackoverflow.com/a/39136421/6755206
幸运的是,你不必转向ruby 2.0https://github.com/hwding/sqlite3-ruby-win
gem uninstall sqlite3 --all
gem install bundler
bundle install
rake native gem
gem install --local sqlite3-xxx.gem
(&#39; xxx&#39;是版本代码)irb
require 'sqlite3'
答案 2 :(得分:16)
由于pull request #229已合并,因此可以按git:
键安装sqlite3。在Gemfile
:
gem 'sqlite3', git: "https://github.com/sparklemotion/sqlite3-ruby"
这适用于RubyInstaller-2.4及更新版本。当您运行mingw-w64-x86_64-sqlite3
时,它会自动安装所需的pacman软件包bundler install
。
在RubyInstaller2 FAQ中,Windows上的Rails还有一些提示。
答案 3 :(得分:13)
Total Limit
这解决了我的问题。
gem uninstall sqlite3 --all
ridk exec pacman -S mingw-w64-x86_64-sqlite3
gem inst sqlite3 --platform ruby
答案 4 :(得分:9)
只需编辑Gemfile并添加gem 'sqlite3', platform: :ruby
。
答案 5 :(得分:5)
没有编译源代码或下载预编译的库将解决这个问题,相信我,我尝试了一切,问题出在其他地方。这就是它在Windows上的工作方式:
bundle update sqlite3
在关于nokogiri之后你可能会遇到另一个类似的错误,用命令修复它:
bundle update nokogiri
享受您的Ruby应用程序!
答案 6 :(得分:4)
卸载并重新安装sqlite3 gem对我有用。
gem uninstall sqlite3
bundle
答案 7 :(得分:4)
这对我有用:
/\d/
答案 8 :(得分:4)
最佳官方安装
Im使用Rails 5.2.1p57,Windows 10 只需执行以下几行就可以解决问题
noop
并卸载所有已安装的版本。再次执行以下命令
gem uninstall sqlite3
您现在完成。 让我知道问题是否仍然存在。
答案 9 :(得分:2)
如果最佳答案不起作用,我发现的修复只是转到你的Gemfile并在sqlite3之后添加版本号1.3.11(而不是1.3.9)。因此,Gemfile中的行现在应该是:
# Use sqlite3 as the database for Active Record
gem 'sqlite3', '1.3.11'
答案 10 :(得分:2)
将Ruby版本升级到2.5.X时,我遇到了相同的错误。我用<header id="home">
<div class="bg-img" style="height:100%;width:100%;background-image:none;background-size:cover;">
<div id="banner-load"></div>
<script type='text/javascript'
src='https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js'>
</script>
<script>
var images = ['background11.jpg', 'background12.jpg', 'background13.jpg',
'background14.jpg', 'background15.jpg'];
function getRandomImage() {
return 'img/'+images[Math.floor(Math.random() * images.length)];
}
function setRandomImage() {
$('.bg-img').css('backgroundImage', 'url('+getRandomImage()+')');
}
$(function(){
setRandomImage();
});
</script>
<div class="overlay"></div>
</div>
跟踪到sqlite3在2.5版中不可用,然后我将GemFile更改为gemsqlsql3,将其更改为sqlite3-ruby,然后卸载了sqlite3,最后运行了{ {1}}。
我不知道是什么原因...我读到“ sqlite3”还不能用于ruby 2.5,但是我不确定。
答案 11 :(得分:2)
为避免此错误,请确保将gem sqlite3
添加到您的Gemfile中。
然后将Sqlite download link中的“ exe”和“ dll”提取到Ruby的bin文件夹中。
如果问题仍然存在。试试这个:
bundle update
gem uninstall sqlite3
在sqlite3的多个版本之间进行选择,请选择最后一个选项“所有版本”。在此处输入最后一个号码
选择要卸载的gem:
1. sqlite3-1.3.13
2. sqlite3-1.3.13-x64-mingw32
3.所有版本
>3
。
。
如果删除此gem,将无法满足这些依赖性。
继续卸载吗? [yN]
>y
gem install sqlite3 --platform=ruby
rails s
这应该有效。
如果以上方法对您有用,请通读此link,以获取更多说明。
答案 12 :(得分:1)
这也发生在我身上。事实证明我最初安装了SQLite 1.3.10,但后来我从Rails教程截屏项目中复制了一些宝石,并列出了SQLite 1.3.9。然后我得到了你做的同样的错误。我把它改回1.3.10并且有效。
(这是在Windows 7上。我在Cloud9 IDE上运行截屏教程)。
答案 13 :(得分:1)
已更新
将以下内容添加到为我修复的Gemfile中: gem'sqlite3','1.4.0',平台::ruby
答案 14 :(得分:1)
这是唯一适用于我的解决方案,源自this GitHub issue post:
./configure --disable-shared
。make install DESTDIR=/c/dev/ruby/tmp
。您可以更改目录。gem uninstall sqlite3 --all
以删除所有现有的sqlite3宝石。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
。那些include和lib目录可能不同,所以请先查看。我在Windows 10上使用Ruby版本2.5.1和Rails版本5.2.0。
答案 15 :(得分:0)
我找到了!我看到了这个https://www.youtube.com/watch?v=lsrzvX0qzmA
我安装了:
Rails版本:5.2.1
Ruby版本:2.5.3(x64-mingw32)
Sqlite版本1.3.13
我有你的问题...
我的解决办法:
答案 16 :(得分:0)
对于OSX用户,这可能是由于使用ruby管理器(例如rvm)导致的。
如果您编辑〜/ .bash_profile并添加以下内容:
[[ "$APP" = *"/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"* ]] && {
echo Xcode detected
rvm use system
}
您可以解决此问题。尝试重新构建之前,请重新启动Xcode。
实际问题在此处跟踪:https://openradar.appspot.com/28726736)。
全部信用归功于:https://egeek.me/2018/04/14/ipa-export-error-in-xcode-and-ruby/
答案 17 :(得分:0)
为此更改Gemfile中的sqlite3 gem:
gem 'sqlite3', git: "https://github.com/larskanis/sqlite3-ruby", branch: "add-gemspec"
然后运行:
bundle install
答案 18 :(得分:0)
我有同样的探针,但它很简单,
gem uninstall sqlite3 --all
然后运行
gem install sqlite3
一切都应该从那里开始。