2010-08-11 87 views
244

安装错误我已经sqlite3的,红宝石在下面的错误安装:sqlite3的,红宝石在Ubuntu

 
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

同样的问题 - 这是没有答案。 sqlite3.h不存在,所有上述软件包都已安装。 ubunut 10.10 – rrt 2011-02-11 16:55:46

+0

尝试sudo易于得到安装建立必要再sudo的创业板安装sqlite3的,红宝石 – Dmitry 2011-02-11 16:55:46

+1

它已经改变了,只是'sqlite3',为我工作在Ubuntu 12.04作为不'的sqlite3-ruby' – kelloti 2011-11-14 04:50:00

回答

564

您需要针对gem本机扩展的SQLite3开发标头进行编译。您可以通过运行(可能与sudo)安装:

apt-get install libsqlite3-dev 
+25

我需要'sudo apt-get install libsqlite3-dev'。谢谢。 – 2011-05-26 21:53:24

+6

像一个魅力工作。谢谢。 – 2012-05-15 14:19:08

+0

谢谢,这肯定不会是明显的。 – 2013-07-01 04:51:29

0

不是--without-sqlite3-include=/usr/include,而是--with-sqlite3-include=/usr/include

+0

无法正常工作.. sqlite3.h仍然缺失 – Dmitry 2010-08-11 13:36:52

+0

如果sqlite3.h确实缺失并且不在/ usr/include中,那么您可以使用以下命令安装它:sudo apt-得到安装libsqlite3-dev – Kurt 2010-08-11 13:47:43

+0

我已经这样做了..它没有帮助。我安装了sqlite3和libsqlite3-dev。 – Dmitry 2010-08-11 13:54:41

14

你只需要一个--在那里。

sudo gem install sqlite3-ruby -- --with-sqlite3-include=/usr/include 

指定该选项不是直接创建宝石,而是指定宝石。

8

在我来说,我没有安装基本的编译器,所以

sudo apt-get install build-essential 

解决我的问题,但对于大多数人,我认为https://stackoverflow.com/a/3649005/417267是解决方案。

+3

这不起作用。 :(libsqlite3-dev的窍门。 – fny 2012-01-13 23:20:09

+0

这是我的问题。谢谢。 – 2017-09-28 14:17:38

6

如果您在Ubuntu上运行,并在轨道上使用RVM红宝石,请加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 

-use Ubuntu不需要sudo。

Goodluck!注意:我使用的是Ubuntu 10.10,它工作正常。

+1

'sudo apt-get安装sqlite3 libsqlite3-dev'为我工作 – 2012-02-02 13:01:56

4

试过全部其他解决方案,没有帮助。

事实证明,你还需要开发自己的开发包。对我来说,它有助于

sudo apt-get install ruby-full 

它有很多讨厌的依赖性,虽然(象emacs的,跆拳道?),只是

sudo apt-get install ruby1.8-dev 

应该罚款。安装完成后(并安装了sqlite和sqlite-dev软件包)

sudo gem install sqlite3-ruby 

工作起来就像一个魅力。

+1

也适用于我。sudo apt-get install ruby​​1.9.1-dev libsqlite3-dev – rajsite 2015-01-07 22:58:55

1

有同样的问题,并为我下面的工作:

编译sqlite3的静态库,在你的home目录的地方安装,然后提供宝石该选项安装过程。

转到下载页面并获取源代码。目前最新版本是http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz

tar -xf对文件或做任何你平常做的事情来解压;进入目录

的./configure --disable共享--enable-静态前缀= /一些/路径/中/我的/ home

编译,安装,当您安装的宝石。 ..

创业板安装sqlite3的,红宝石 - --with-sqlite3的-DIR = /一些/路径/中/我的/ home

0

这是完全一样的问题,我在几个星期前。我发现我需要从SQLite下载页面下载最新的头文件/库。试试看,希望这有助于!

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 

显然,你会得到一个错误的错误指向缺少sqlite3.h当实际问题缺少gcc本身。

0

对我来说,这个问题是通过获取MKMF,这是ruby1.8的-dev的解决。

sudo apt-get install ruby1.8-dev 

感谢mentalized那个。

5

这只是足以使其工作

sudo apt-get install libsqlite3-dev 

由于marshluca

+0

This working for me。谢谢! – 2012-03-11 14:24:41

0

我同意Danya Vershinin & EnotionZ

如果不能使用apt-get:

  1. 编译&来源安装的sqlite3指定自己的 “前缀” 路径。 更多信息可以在README中找到。
  2. 然后将此路径传递给sqlite3-ruby安装程序(不要忘记“ - ”)。
1

的解决方案是增加--gem参数分离configure参数。

代替

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 
+0

这正是我需要 - 非常感谢这位提交者! – 2014-09-04 15:29:48

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,这会提供更多的解释说明

0

忘记所有内容为此,

运行

yum install ruby-devel sqlite sqlite-devel ruby-rdoc 
yum install make gcc 
gem install sqlite3-ruby 
bundle install 

这对于RHEL,运行相同的Ubuntu。