我在sqlite3-ruby安装期间出现以下错误:
Building native extensions. This could take a while... ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension. /usr/bin/ruby1.8 extconf.rb checking for sqlite3.h... no sqlite3.h is missing. Try 'port install sqlite3 +universal' or 'yum install sqlite3-devel' *** 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 --without-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=/usr/bin/ruby1.8 --with-sqlite3-dir --without-sqlite3-dir --with-sqlite3-include --without-sqlite3-include=${sqlite3-dir}/include --with-sqlite3-lib --without-sqlite3-lib=${sqlite3-dir}/lib Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 for inspection. Results logged to /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out
sqlite3.h位于/ usr / include /
sudo gem install sqlite3-ruby --without-sqlite3-include=/usr/include
不起作用
ERROR: While executing gem ... (OptionParser::InvalidOption) invalid option: --without-sqlite3-include=/usr/include
Ubuntu 10.04
答案 0 :(得分:577)
您需要针对gem的本机扩展的SQLite3开发标头进行编译。您可以通过运行(可能使用sudo
)来安装它们:
apt-get install libsqlite3-dev
答案 1 :(得分:14)
你只需要--
。
sudo gem install sqlite3-ruby -- --with-sqlite3-include=/usr/include
它指定该选项不是直接为gem,而是特定的gem。
答案 2 :(得分:8)
在我的情况下,我没有安装基本的编译器,所以
sudo apt-get install build-essential
解决了我的问题,但对于大多数人来说,我认为https://stackoverflow.com/a/3649005/417267是解决方案。
答案 3 :(得分:6)
这就是我所做的:
wget http://www.sqlite.org/sqlite-amalgamation-3.7.2.tar.gz
tar xzf sqlite-amalgamation-3.7.2.tar.gz
cd sqlite-3.7.2/
./configure
make
make install
gem install rails sqlite3-ruby
来自:http://cuasan.wordpress.com/2010/10/13/rails-3-on-debian-with-sqlite-3/
答案 4 :(得分:6)
这足以让它发挥作用
sudo apt-get install libsqlite3-dev
感谢marshluca
答案 5 :(得分:6)
如果您在ubuntu中运行,并在轨道上使用RVM for ruby,请添加FIRST:
sudo apt-get install libxslt-dev libxml2-dev
或者您可以查看以下命令:
此命令将为您准备两个软件包:sqllite3和libsqlite3-dev
sudo apt-get install sqlite3 libsqlite3-dev的
- 现在,安装sqlite gem
[sudo] gem install sqlite3-ruby
- 使用Ubuntu不需要sudo。
古德勒克!注意:我正在使用Ubuntu 10.10并且它正在运行。
答案 6 :(得分:4)
尝试了所有其他解决方案,没有人帮忙。
原来你还需要dev包自己的ruby包。对我来说,这有帮助
sudo apt-get install ruby-full
它有很多讨厌的依赖关系(比如emacs,wtf?),只是
sudo apt-get install ruby1.8-dev
应该没问题。安装完成后(你安装了sqlite和sqlite-dev软件包)
sudo gem install sqlite3-ruby
就像一个魅力。
答案 7 :(得分:2)
以下是HEROKU - cannot run git push heroku master
的更好答案由于你无法在heroku上使用sqlite3,请将其添加到你的Gemfile:
group :production do
gem 'pg'
end
group :development, :test do
gem 'sqlite3'
end
答案 8 :(得分:1)
有同样的问题,以下内容对我有用:
将sqlite3编译为静态库,安装在主目录中的某个位置,然后为gem安装过程提供该选项。
转到下载页面并获取源代码。目前最新版本为http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz
文件中的tar -xf或执行您通常要解压缩的任何操作;输入目录
./ configure --disable-shared --enable-static --prefix = / some / path / in / my / home
编译,安装,以及安装gem时...
gem install sqlite3-ruby - --with-sqlite3-dir = / some / path / in / my / home
答案 9 :(得分:1)
来自sqlite3-ruby gem can't find sqlite3.h on ubuntu:
您还需要安装gcc本身,所以总的来说是:
sudo apt-get install gcc libsqlite3-dev ruby1.8-dev
sudo gem install sqlite3
当实际问题缺少gcc本身时,显然你得到一个指向缺少sqlite3.h的错误错误。
答案 10 :(得分:1)
解决方案是将--
添加到configure
参数中的gem
参数中。
而不是
sudo gem install sqlite3-ruby --without-sqlite3-include=/usr/include
尝试这一切,在一行中,确保在最后--
参数之后和gem
参数之前包含configure
:
sudo gem install sqlite3 --
--with-sqlite3-lib=/somewhere/local/lib
--with-sqlite3-include=/somewhere/local/include
这可以解决这个错误:
ERROR: While executing gem ... (OptionParser::InvalidOption)
invalid option: --without-sqlite3-include=/usr/include
答案 11 :(得分:0)
这是我几周前遇到的完全相同的问题。我发现我需要从SQLite下载页面下载最新的头文件/库。尝试一下,希望这有帮助!
答案 12 :(得分:0)
不是--without-sqlite3-include=/usr/include
,而是--with-sqlite3-include=/usr/include
。
答案 13 :(得分:0)
答案 14 :(得分:0)
我同意Danya Vershinin& EnotionZ
如果不能使用apt-get:
答案 15 :(得分:0)
你破坏了RVM的版本。 Ubuntu对产生大量错误的RVM做了一些事情,现在唯一安全的修复方法是:sudo apt-get --purge remove ruby-rvm sudo rm -rf / usr / share / ruby ...,如果它没有帮助然后重新启动计算机。安装RVM:\ curl -L https://get.rvm.io | bash -s stable --ruby --autolibs = enable --auto-dotfiles如果你发现你需要一些手持,请看看在Ubuntu 12.04上安装Ruby,它提供了更多的解释
答案 16 :(得分:0)
忘掉一切,然后这样做,
运行
yum install ruby-devel sqlite sqlite-devel ruby-rdoc
yum install make gcc
gem install sqlite3-ruby
bundle install
对于rhel而言,为ubuntu运行相同。
答案 17 :(得分:0)
即使在安装libsqlite3-dev
和PostgreSql
之后,上述解决方案都不适用于我。然后尝试使用sqlite
代替PostgreSql
。这工作得很好。要在创建rails
项目时使用rails [_VERSION_] new project_name -d postgresql
而不是sqlite,请使用此命令。
MySql
如果您想使用mysql
,请使用postgresql
代替rails [_VERSION_] new project_name -d mysql
。
sqlite
否则,您可以在没有bundle install --without sqlite
的情况下尝试。
{{1}}
答案 18 :(得分:0)
我刚刚降级为sqlite3-ruby'1.2.2'