Rails 3.1的Sqlite3 gem

时间:2011-11-14 20:43:01

标签: ruby-on-rails ruby sqlite

我想使用命令

创建myApp
  

rails new myApp

但它会出错:

  

使用本机扩展安装sqlite3(1.3.4)   Gem :: Installer :: ExtensionBuildError:错误:无法构建gem native   扩展

     

/usr/bin/ruby1.8 extconf.rb检查sqlite3.h ...没有sqlite3.h是   失踪。尝试'port install sqlite3 + universal'或'yum install   sqlite3-devel'并检查您的共享库搜索路径(位置   您的sqlite3共享库所在的位置)。    * extconf.rb失败* 由于某些原因无法创建Makefile,可能缺少必要的库和/或标头。校验   mkmf.log文件以获取更多详细信息。您可能需要配置   选项。

     

提供配置选项:       --with-OPT-DIR       --without-OPT-DIR       --with-OPT-包括       --without-OPT-包括= $ {停用DIR} /包括       --with-OPT-LIB       --without-OPT-LIB = $ {选择-DIR} / lib目录       --with-MAKE-PROG       --without-MAKE-PROG       --srcdir =。       --curdir       --ruby =的/ usr /斌/ ruby​​1.8的       --with-sqlite3的-DIR       --without-sqlite3的-DIR       --with-sqlite3的,包括       --without-sqlite3的-包括= $ {sqlite3的-DIR} /包括       --with-sqlite3的-LIB       --without-sqlite3的-LIB = $ {sqlite3的-DIR} / lib中       --enable-地方       --disable本地

     

Gem文件将保持安装状态   /usr/lib/ruby/gems/1.8/gems/sqlite3-1.3.4进行检查。结果   登录到   /usr/lib/ruby/gems/1.8/gems/sqlite3-1.3.4/ext/sqlite3/gem_make.out   安装sqlite3(1.3.4)时出错,而Bundler不能   继续。确保gem install sqlite3 -v '1.3.4'成功   在捆绑之前。

我该怎么办?感谢

3 个答案:

答案 0 :(得分:12)

确保安装了SQLite3的开发标题。

例如:

在Ubuntu上,您可以使用apt-get install libsqlite3-dev

在安装了自制软件的Mac上:brew install sqlite

答案 1 :(得分:3)

每当我在Ubuntu上重新安装rails时,我发现运行此命令非常有用。这通常会处理超级常见的zlib和sqlite3错误。

/ usr / bin / apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6 -dev ncurses-dev

答案 2 :(得分:1)

我在Windows中遇到了同样的问题。 我现在只找到两种解决方案 1 *项目创建失败后,进入其文件夹并修改Gemfile。 换行
gem 'sqlite3', '1.3.11' 通过以下其中一种方式:

gem 'sqlite3', git: "https://github.com/sparklemotion/sqlite3-ruby"

gem 'sqlite3', git: "https://github.com/sparklemotion/sqlite3-ruby", branch: "add-gemspec"

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

并再次为此项目运行bundle install命令

我发现的第二个解决方案是从https://rubygems.org/下载gem,并将其保存在本地以从文件安装,首先,您必须安装mingw(但仅适用于Windows)

C:\Sites>ridk exec pacman -S mingw-w64-x86_64-dlfcn
C:\Sites>gem install --local C:\sqlite3-1.4.0.gem

我尝试了其他一些解决方案,但这两个是唯一为我工作的解决方案。

https://mycodeissuesandfixes.blogspot.com/2019/02/ruby-on-rails-issue-about-sqlite-3-gem.html 这些是其他修复程序,但是我不知道它们是否会在Linux中为您提供帮助。 希望能帮助到你!!我一直尝试完成5天,直到找到可以解决此sqlite 3 gem错误的东西