轨道4.0rc1应用程序没有运行,由于缺少sqlite3的宝石(Rails 4.0rc1 app n

2019-09-02 19:05发布

我第一次尝试安装的Rails 4.0。 在Windows 8中使用Ruby 2.0的x64。 冉:

gem install rails --version 4.0.0.rc1 --no-ri --no-rdoc

然后我运行:

rails new test_app
cd test_app
rails s

但在网页localhost:3000报告以下错误:

指定“sqlite3的”数据库适配器,但没有加载宝石。 添加gem 'sqlite3'你的Gemfile。

它的存在在我的Gemfile:

gem 'sqlite3'

我试图运行bundle install好几次,它甚至不列出它的所有其他宝石之一。

更新 :我已经尝试了两种不同的方式安装sqlite3的宝石,无论是使用从该的devkit文件msys.bat打开终端。 下面@szines提到的方式给了我以下错误:

$ gem install sqlite3 --platform=ruby -- --with-opt-dir=c:/sqlite-amalgamation-3071602
Temporarily enhancing PATH to include DevKit...
Building native extensions with: '--with-opt-dir=c:/sqlite-amalgamation-3071602'
This could take a while...
ERROR:  Error installing sqlite3:
        ERROR: Failed to build gem native extension.

    c:/Ruby200-x64/bin/ruby.exe extconf.rb --with-opt-dir=c:/sqlite-amalgamation-3071602
checking for sqlite3.h... yes
checking for sqlite3_libversion_number()... -lsqlite3
sqlite3 is missing. Install SQLite3 from http://www.sqlite.org/ first.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=c:/Ruby200-x64/bin/ruby
        --with-sqlite3-dir
        --without-sqlite3-dir
        --with-sqlite3-include
        --without-sqlite3-include=${sqlite3-dir}/include
        --with-sqlite3-lib
        --without-sqlite3-lib=${sqlite3-dir}/
        --enable-local
        --disable-local
        --with-sqlite3lib
        --without-sqlite3lib


Gem files will remain installed in c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7 for inspection.
Results logged to c:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/ext/sqlite3/gem_make.out

另一种方法,我用从sqlite.org autoconf的包,我能够编译和安装sqlite3的宝石。 然而,当我尝试打开Rails服务器我得到以下错误:

C:\Users\me\RubymineProjects\my_project>rails s
C:/Ruby200-x64/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 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `rescue in <top (required)>'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:2:in `<top (required)>'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
        from C:/Users/me/RubymineProjects/my_project/config/application.rb:7:in `<top (required)>'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in `require'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in `block in <top (required)>'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in `tap'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in `<top (required)>'
        from bin/rails:4:in `require'
        from bin/rails:4:in `<main>'

Answer 1:

烦,但我终于得到了它的工作。 基本上,你必须做到以下几点:

  1. 下载sqlite的文件就可以被编译路易斯拉维纳(这是64位)
  2. 取消归档与7-zip包也许`C:\ sqlite3的
  3. 从文件夹中的devkit中运行msys.bat您未归档到的devkit
  4. 运行gem install sqlite3 --platform=ruby -- --with-opt-dir=C:/sqlite3


Answer 2:

我在Mac OS X上运行的Rails 4.0.0版本使用Ruby 2.0,而问题是,sqlite3的没有更新为兼容的版本(和警告没有刻意去说的话)。

下面是我如何能够解决这个问题:

$ gem install sqlite3 --platform=ruby

这给了我一个暗示,最先进的最新版本的sqlite3的是1.3.7。 然后,我相应地更新在Gemfile中的sqlite3的宝石。 它是如此简单。



Answer 3:

*这个答案是Ruby 2.0.0 86,不64。

我想我有它。 圣杯。 流奶与蜜之地。 在印第安纳琼斯那盒子,疯狂的灯光拍出来的。 冰淇淋并不在阳光下融化。

尝试只是在这里的每一个答案,什么终于做到了,我(除非我产生了幻觉)后https://stackoverflow.com/a/16524605/765352 (在最后的评论如何对Ruby在Windows上安装的sqlite3 ? )。

我是在Windows 8上运行的Ruby 2.0.0 X86,使用Ruby的RailsInstaller版本。

只需通过提供的链接来阐述他的回答:

  1. 转到http://www.sqlite.org (特别http://sqlite.org/download.html )和下载:

    • http://sqlite.org/2013/sqlite-amalgamation-3071700.zip

    • http://sqlite.org/2013/sqlite-shell-win32-x86-3071700.zip

    • http://sqlite.org/2013/sqlite-dll-win32-x86-3071700.zip

(我不知道是否需要的最后两个。而且,我不会退缩的兔子洞进行检查。)

  1. 打开所有的ZIP探头到您选择的目录。 我用 “的sqlite-合并-301700”。 (DIR)。

  2. 进入你的宝石外壳,并键入

    宝石安装sqlite3的--platform =红宝石 - --with-sqlite3的-DIR = C:/源码-合并-3071602 --with-sqlite3的-包括= C:/源码-合并-3071602

您应该看到

C:\xx\>gem install sqlite3 --platform=ruby -- --with-sqlite3-dir=c:/sqlite-amalgamation-3071602 --with-sqlite3-include=c:/sqlite-amalgamation-3071602
Temporarily enhancing PATH to include DevKit...
Building native extensions with: '--with-sqlite3-dir=c:/sqlite-amalgamation-3071602 --with-sqlite3-include=c:/sqlite-amalgamation-3071602'
This could take a while...
Successfully installed sqlite3-1.3.7
Parsing documentation for sqlite3-1.3.7
unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/sqlite3/sqlite3_native.so, skipp
ing
Installing ri documentation for sqlite3-1.3.7
Done installing documentation for sqlite3 (3 sec).
1 gem installed

Booyah。 接招,自动编译什么。 并没有得益于SQLite,它证明了一个重量级的。 而这一切都归功于谷歌一如既往。

参考文献:

  • 这个非常线程;

  • 非常的家伙是谁写的https://stackoverflow.com/a/16524605/765352 ;

  • 一堆线程谈论sqlite.org的;

  • StackExchange,对我不放弃;

  • 我对StackExchange不放弃;

  • 所有的信徒在那里;

  • 我的生产和管理,谁爱我(我爱你铝)。



Answer 4:

下载sqlite的源文件,并建立sqlite的宝石有特殊参数。

  • 下载SQLite的源代码。
  • 创建你PC上的文件夹sqlite的。 例如:C:/源码
  • 此文件夹中创建三个子文件夹:C:/ sqlite的/包括C:/ sqlite的/ lib目录,C:/ sqlite的/ bin中
  • 复制源文件:

c:/sqlite/bin => sqlite3.exe

c:/sqlite/include => sqlite3.h sqlite3ext.h

c:/sqlite/lib => libsqlite3.a sqlite3.la

  • 卸载以前的SQLite与宝石

gem uninstall sqlite3

  • 需要兼容的devkit,64位系统的x64版本。
  • 用下面的命令来安装兼容的宝石。 (不要忘了第二空双破折号)。

gem install sqlite3 --platform=ruby -- --with-opt-dir=c:/sqlite

要小心,如果以后运行包update命令,你看到捆绑安装“官方” sqlite的宝石,你必须卸载“老”版本。 你会得到错误信息无论如何,如果你有更多的sqlite的版本。



Answer 5:

看看分辨率为这一个:

  • Rails的4 SQLITE3失败

在这种情况下,有在近期发布捆扎机的错误。 本次发行前捆扎机解决了这一问题。



Answer 6:

谢谢大家的家伙,这是为我工作安装的sqlite3的:

下载sqlite-dll-win64-x64-3260000.zip,sqlite-tools-win32-x86-3260000.zip和SQLite-autoconf的3260000.tar.gz。

将sqlite3.h和sqlite3ext.h一个名为包括文件夹中

将shell.c,sqlite3.c,sqlite3.def和sqlite3.dll在一个文件夹,名为LIB

gem install sqlite3 --platform=ruby -- --with-sqlite3-lib=c:/Devkit/sqlite3/lib --with-sqlite3-include=c:/Devkit/sqlite3/include
gem install data_mapper --platform=ruby -- --with-sqlite3-lib=c:/Devkit/sqlite3/lib --with-sqlite3-include=c:/Devkit/sqlite3/include
gem install dm-sqlite-adapter --platform=ruby -- --with-sqlite3-lib=c:/Devkit/sqlite3/lib --with-sqlite3-include=c:/Devkit/sqlite3/include


文章来源: Rails 4.0rc1 app not running due to missing sqlite3 gem