2010-08-11 89 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。