Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 无法在ruby on rails上加载这样的文件--sqlite3/sqlite3_native(LoadError)_Ruby On Rails_Sqlite - Fatal编程技术网

Ruby on rails 无法在ruby on rails上加载这样的文件--sqlite3/sqlite3_native(LoadError)

Ruby on rails 无法在ruby on rails上加载这样的文件--sqlite3/sqlite3_native(LoadError),ruby-on-rails,sqlite,Ruby On Rails,Sqlite,当我尝试在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

当我尝试在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>'

如何避免此错误消息并继续操作?

查找您的sqlite3 gemspec文件。一个例子是/usr/local/share/gem/specifications/sqlite3-1.3.7.gempec

窗口: C:\Ruby21\lib\ruby\gems\2.1.0\specifications

您应该根据Rubygem路径和sqlite3版本进行调整。 编辑上面的文件并查找下面的行

s.require_paths=["lib"]
换成

s.require_paths= ["lib/sqlite3_native"]

这也发生在我身上。原来我最初安装了SQLite 1.3.10,但后来我从Rails教程的screencasts项目中复制了一些gem,它列出了SQLite 1.3.9。然后我犯了和你一样的错误。我把它改回了1.3.10,它成功了


这是在Windows7上。我正在Cloud9IDE上运行screencast教程。

卸载并重新安装SQLite3Gem对我来说很有效

gem uninstall sqlite3

bundle

如果上面的答案不起作用,我发现的一个修复方法就是直接进入您的GEM文件,并在sqlite3之后添加版本号1.3.11,而不是1.3.9。因此,文件中的行现在应为:

# Use sqlite3 as the database for Active Record
gem 'sqlite3',  '1.3.11'
见:

幸运的是,您不必切换到ruby 2.0 经过无休止的尝试,这个问题有一个解决方案

台阶 之前 gem卸载sqlite3-全部 来源 下载最新的sqlite3 ruby, 解开包裹 建筑 在提取的目录中运行命令行 确保已安装C编译器并将其添加到PATH gem安装绑定器 捆绑安装 天然宝石 您将发现生成了一个名为“pkg”的目录 安装 输入dir'pkg' gem安装-本地sqlite3-xxx.gem'xxx'是版本代码 检查 内部评级 需要'sqlite3'
编译源代码或下载预编译库都不能解决这个问题,相信我,我尝试了所有方法,问题出在其他地方。这是它在windows上的工作方式:

捆绑更新sqlite3

在这一次关于nokogiri的错误之后,您可能会遇到另一个类似的错误,请使用以下命令进行修复:

捆绑更新nokogiri

享受你的Ruby应用

自从合并以来,可以按照git:key安装sqlite3。通过在GEM文件中添加以下内容,可以轻松使用sqlite3:

这适用于RubyInstaller-2.4及更新版本。当您运行bundler安装时,它会自动安装所需的pacman软件包mingw-w64-x86_64-sqlite3


在中有更多关于Windows上Rails的提示。

这是唯一适合我的解决方案,源自:

从中获取sqlite3源的autoconf版本。 启动MSYS外壳。 在sqlite3的解包位置,仅配置静态版本以避免将DLL保留在路径上:./configure-disable shared。 构建并安装它:使install DESTDIR=/c/dev/ruby/tmp。您可以更改目录。 打开windows的命令提示符并运行gem uninstall sqlite3-all以删除所有现有的sqlite3 gem。 再次在windows的命令提示符下,构建并安装sqlite3 gem: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。

只需编辑Gemfile并添加gem'sqlite3',platform::Ruby。

我在将Ruby版本升级到2.5.X时遇到了相同的错误。我通过rails任务跟踪发现sqlite3在2.5版中不可用,然后在卸载gem sqlite3并最终运行包安装后,我将gem文件gem sqlite3更改为sqlite3 ruby

我不知道是什么原因。。。我读到sqlite3还不能用于ruby 2.5,但我不确定。

这对我很有用:

gem 'sqlite3', git: "https://github.com/larskanis/sqlite3-ruby", branch: "add-gemspec"
最佳官方安装

Im使用rails 5.2.1p57和Windows 10 只需运行以下行即可解决问题

gem uninstall sqlite3
并卸载所有已安装的版本。再次执行以下命令

gem install sqlite3 --platform=ruby
你现在完成了。
如果问题仍然存在,请告诉我。

要避免此错误,请确保将gem sqlite3添加到gem文件中。 然后从Ruby的bin文件夹中提取EXE和DLL。 如果问题仍然存在。试试这个:

包更新

gem卸载sqlite3

如果要在sqlite3的多个版本之间进行选择,请选择最后一个选项“所有版本”。在此处输入最后一个数字

选择要卸载的gem: 1.sqlite3-1.3.13 2.sqlite3-1.3.13-x64-mingw32 3.所有版本 >3 . . 如果删除此gem,将无法满足这些依赖关系。 是否继续卸载?[yN] > y

gem安装sqlite3-platform=ruby

铁轨

这应该行得通

如果上面的内容对您有用,请通读此内容以获得更多解释。

我找到了!我看到了这个 我上传: Rails版本:5.2.1 Ruby版本:2.5.3 x64-mingw32 Sqlite版本1.3.13 我有你的问题。。。 我的解决方案:

在安装文件夹中 比如C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\ 您有以下文件夹: 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\u native.so 在C:\Ruby25-x64\lib\ruby\gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32\lib\sqlite3\2.5\sqlite3\u native.so中复制它 文件夹可能不存在-创建并粘贴 这就解决了我的问题

Windows 10
Ruby 2.5.3
Rails 5.2.2
更新

将以下内容添加到为我修复的文件:
gem'sqlite3','1.4.0',platforms::ruby

对于OSX用户,这可能是由于使用了ruby管理器,例如rvm

如果编辑~/.bash_配置文件并添加以下内容:

[[ "$APP" = *"/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"* ]] && {
  echo Xcode detected
  rvm use system
}
你可以解决这个问题。重新启动Xcode,然后再尝试重新生成

此处跟踪实际问题:


完全归功于:

在gem文件中更改您的sqlite3 gem:

gem 'sqlite3', git: "https://github.com/larskanis/sqlite3-ruby", branch: "add-gemspec"
然后运行:

bundle install

我有同样的探针,但很简单

gem uninstall sqlite3 --all
然后跑

gem install sqlite3


从那时起,一切都应该正常工作。

您在什么操作系统上尝试此功能?似乎是windows的问题。解决办法各不相同。看看这是否对你有用。但他似乎没有在使用windows。也许会有帮助。哦,是的,/usr/local/etc,看到了,我的错。从我发现的情况来看,大多数人出现这个问题是因为sqlite exe和dll不在PATH变量中,但这只发生在windows用户身上。我认为你提供的文章应该一针见血,但让我们拭目以待。如果Rails 4和Ruby 2.1看,这对于一个本来就不应该存在的问题来说是一个奇妙的错误,因为Windows上有很多Rails用户。我很想知道这到底是为什么…这对1.3.9有效,但对1.3.11没有必要。我在Win7 x64上。它已出现,错误:无法加载“活动\u记录/连接\u适配器/sqlite3\u适配器”。确保config/database.yml中的适配器有效。如果您使用的适配器不是'mysql2'、'postgresql'或'sqlite3',请将必要的适配器gem添加到gem文件中。适配器的上述错误似乎无法解决,首先执行hwding建议的操作将节省我相当多的时间-不过,也许他们会在下一版本中修复此问题,或者修复了RailsInstaller ruby2.3.1和带有构建工具的devkitmingw等堆叠包中rails5.0.0.1 p.s.令人难以置信的是,在2年后,这个问题仍然存在,因为sqlite默认用于框架默认应用程序,两年后该怎么办?三年怎么样?谢谢@hwding。这很好用!在我的例子中,Windows用户,似乎两个sqlite3版本32和64位是在“pkg”中编译的,但我只是在我的案例中安装了一个64位。是的,经过多次尝试,这是唯一有效的方法。。。。其他人建议改用“流浪者”和“跳过Windows+Rails”之类的工具。我确认这是适用于Windows 10的唯一解决方案;尝试了几个修复程序,但这是唯一有效的一个。我已经按照上面提到的步骤进行了修复,但是我没有看到任何名为pkg的文件夹。在我工作到之前,您会发现生成了一个名为“pkg”的目录,因为我在任何地方都没有看到这样的目录@Edson Momm下面的解决方案对我很有用。这个答案对新的ruby安装程序ruby版本ruby 2.5.1p57 2018-03-29修订版63029和rails版本rails 5.2.1PR都很有帮助。我相应地更新了我的答案。为了解决SSL问题,我使用了:gem'sqlite3',git:git://github.com/sparklemotion/sqlite3-ruby.gitand Gem的源folderOMG中的gempec文件是真实的:D只有这对我有效,windows10对RoR来说是可怕的。谢谢!也为我工作。我的问题是在windows 10上从ruby 2.4升级到ruby 2.6之后出现的。这也是我在Win10 ruby 2.6 x64上的答案。非常感谢。实际上,我不得不这样做几次。似乎每当我为了安装一个新的gem而进行捆绑安装时,我都会再次遇到这个问题,需要重复上述步骤。
gem uninstall sqlite3 --all
gem install sqlite3