2009-01-07 211 views
54

我嘗試在Ruby 1.8.6,Rails 2.2.2,gem 1.3和sqlite-3.5.9的Fedora 9 Linux機器上安裝SQLite gem。以下是我正在運行的命令及其結果:爲什麼我不能安裝SQLite gem?

sudo gem install sqlite3-ruby 
Building native extensions. This could take a while... 
ERROR: Error installing sqlite3-ruby: 
    ERROR: Failed to build gem native extension. 

/usr/bin/ruby extconf.rb install sqlite3-ruby 
can't find header files for ruby. 

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection. 
Results logged to /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out 

gem_make.out只是重複了已經發送到控制檯。我怎樣才能安裝這個寶石?

+0

我不斷得到這個錯誤! – Perpetualcoder 2009-01-07 17:41:56

+1

錯誤中的線索是「找不到ruby的頭文件」......這意味着您將需要ruby的開發包。 – 2009-01-07 20:49:25

+0

@ salt.racer/ANY ONE THERE - 你能否發佈需要什麼包(主要)。 – 2014-01-01 10:50:03

回答

125

SQLite的RubyGem實際上不是紅寶石寶石,這是一個「Ç寶石」,督察它是用C語言編寫這意味着它已經被編譯並鏈接到Ruby解釋器,當你安裝它,爲了做它需要Ruby解釋器的C頭文件。

如果您自己編譯Ruby,那些頭文件將自動安裝,但是,在RedHat-ish系統中,此類頭文件通常打包在一個單獨的包中,稱爲<whatever>-dev。因此,在這種情況下,您需要安裝ruby-dev軟件包,並且還可能需要安裝libsqlite3-dev(Ubuntu)或sqlite-devel(Fedora)軟件包。

然而,你可能會更好只是安裝操作系統的預包裝libsqlite3-ruby包,這樣,所有的依賴關係自動滿足。

(注:所有的包名無中生有的,可能是你的系統上的不同。)

1

你有所需的所有源代碼來構建sqlite3的,紅寶石? Gem正試圖編譯一些C代碼,並找不到頭文件。如果你願意放棄編譯,你可以使用fedora rpm for sqlite3-ruby(我不使用fedora,但我確定存在)。就個人而言,我更喜歡使用寶石而不是發行版的包裝系統。

+0

mysql頭文件的fedora rpm就像'mysql-dev',所以正確的sqlite rpm很可能是'sqlite3-dev' – erik 2009-01-07 17:58:53

+0

我現在使用的是FreeBSD 7.1,而且我有sqlite3-3.6.4端口安裝,這提供了寶石所需要的一切,如果我沒有記錯的話。我試圖自己檢查Rails 2.2.2。祝你好運埃裏克! – barneytron 2009-01-07 18:14:14

0

我不是很熟悉的Fedora,但在Ubuntu當你安裝包你有apt-get的,你必須安裝構建必需品,其中包括海灣合作委員會和其他編譯工具C.我會說,可能是你的問題,你可以看看如何使用RPM或apt-get在Fedora上安裝。

+0

這是Fedora的勝利,但這不是問題。這是libsqlite3-ruby問題。 – 2009-01-22 00:51:35

11

你可能需要紅寶石開發包。對於Ubuntu,你必須安裝包含ruby頭文件的ruby1.8-dev。快速谷歌說,yum包是ruby-devel。所以這條命令:

須藤yum的安裝Ruby-devel的

0

我通過安裝 '海灣合作委員會' 奇怪的是固定在我的OLPC(Fedora 9中)的問題。它似乎應該是那些開發包之一,但沒有。

另外,對於其他的包,後綴是 「-devel」,而不是 「-dev」,所以一定要確保你得到那些結束對: 「紅寶石-devel的」, 「SQLite的-devel的」 ...

一旦你得到的安裝,如果你得到你的寶石太舊「< 1.3.1」當您嘗試運行各種軌道腳本,如錯誤:腳本/服務器或腳本/控制檯,谷歌「upgrade_rubygems」來解決這個問題問題...

HTH ...

5

sudo易於得到安裝Ruby-dev的

爲我修好了。

0

我有這個相同的確切問題...而不是gem'ing我在unbuntu上使用突觸丟失的部分。

的密鑰包對我來說是libsqlite-ruby1.9.1 ......我記錄我的經驗(僅供參考),與此錯誤的: Sqlite3-gem-error-during-bundle-install

8

我面臨的問題在我的Fedora 13箱安裝sqlite3的,紅寶石的寶石。 它被固定後須藤蔭安裝的sqlite-devel的

2

運行在Fedora操作系統中進行如下:

yum install rubygem-sqlite3 
0

運行 「命令百勝安裝的sqlite-devel的」,然後 「創業板安裝sqlite3的」。對我的Fedora同樣的問題15

3

在Ubuntu 9和10的嘗試:

sudo apt-get install ruby-dev 
sudo apt-get install sqlite3-dev 

然後運行

gem install sqlite3 
5

當我有這樣的問題:

gem install sqlite3 -v '1.3.9' 
Building native extensions. This could take a while... 
ERROR: Error installing sqlite3: 
    ERROR: Failed to build gem native extension. 

對於我工作,安裝「libsqlite3-dev」與:

apt-get install libsqlite3-dev 
0

在高山,你需要安裝sqlite-dev包。

相關問題