2009-01-07 15 views
54

Ich versuche das SQLite-Juwel auf einer Fedora 9 Linux-Box mit Ruby 1.8.6, Rails 2.2.2, gem 1.3 und sqlite-3.5.9 zu installieren. Hier ist der Befehl, den ich renne und ihre Ergebnisse:Warum kann ich das SQLite-Juwel nicht installieren?

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 nur wiederholt, was bereits an die Konsole gesendet. Wie kann ich dieses Juwel installieren?

+0

Ich habe diesen Fehler ständig auch !! – Perpetualcoder

+1

Der Hinweis im Fehler ist "kann Header-Dateien für Ruby nicht finden" ... das bedeutet, dass Sie das Entwicklungspaket für Ruby benötigen. –

+0

@ salt.racer/ANY ONE THERE - können Sie bitte posten, welches Paket (hauptsächlich) benötigt wird. –

Antwort

125

Die SQLite RubyGem ist nicht wirklich ein Rubin Gem, es ist ein „C Gem“, IOW es in C geschrieben ist es Dies bedeutet, hat der Ruby-Interpreter kompiliert und gelinkt werden, wenn Sie es installieren und Um , zu tun, benötigt es die C-Header-Dateien für den Ruby-Interpreter.

Wenn Sie Ruby selbst kompilieren, werden diese Headerdateien automatisch installiert. In RedHat-ish-Systemen werden solche Headerdateien jedoch normalerweise in einem separaten Paket namens <whatever>-dev verpackt. Also, in diesem Fall müssen Sie das ruby-dev Paket und möglicherweise auch das libsqlite3-dev (Ubuntu) oder sqlite-devel (Fedora) -Paket installieren.

Sie könnten jedoch besser dran sein, indem Sie einfach das vorinstallierte libsqlite3-ruby-Paket Ihres Betriebssystems installieren, so dass alle Abhängigkeiten automatisch erfüllt werden.

(Hinweis: alle Paketnamen aus der Luft gezogen wird, könnte auf Ihrem System anders sein.)

+3

Verdammt SO ist cool, das ist eigentlich die richtige Antwort ... Ich war verloren versucht, die SqlLite zu installieren und das Problem war, jede Minute neue Fehlermeldungen zu produzieren. Wenn der Fragesteller das jetzt als die richtige Antwort bezeichnen würde, wären wir im Geschäft. –

+7

Unter Ubuntu habe ich apt-get installiert libsqlite3-ruby und es hat perfekt funktioniert. Als root natürlich ... –

+3

Oder wenn Sie den Edelstein installieren möchten, müssten Sie apt-get installieren ruby-dev, genau wie Jorg sagt. – Shadowfirebird

1

Haben Sie den gesamten Quellcode, um sqlite3-ruby zu erstellen? Gem versucht, einen C-Code zu kompilieren und die Header nicht zu finden. Sie können wahrscheinlich einen Fedora rpm für sqlite3-ruby verwenden (ich benutze keinen Fedora, aber ich bin mir sicher, dass es einen gibt), wenn Sie lieber auf kompilieren verzichten. Persönlich für Ruby-Zeug, bevorzuge ich lieber Edelstein als das Verpackungssystem einer Distro.

+0

Die fedora rpm für die mysql-Header ist etwas wie 'mysql-dev', also ist die korrekte sqlite rpm wahrscheinlich 'sqlite3-dev' – erik

+0

Ich benutze jetzt FreeBSD 7.1, und ich habe die sqlite3-3.6.4 Port installiert, der alles zur Verfügung stellte, was Juwel brauchte, wenn ich mich recht erinnere. Ich versuche, Rails 2.2.2 selbst zu überprüfen. Viel Glück Erik! – barneytron

0

Ich bin nicht wirklich vertraut mit Fedora, aber in Ubuntu, wenn Sie Pakete installieren, haben Sie apt-get, und Sie müssen die wichtigsten Builds installieren, die gcc und andere Kompilierungswerkzeuge für C enthält. Ich würde sagen könnte Ihr Problem sein, und Sie schauen, wie das installiert werden kann entweder mit RPM oder apt-get auf Fedora.

+0

Es ist yum auf Fedora, aber das ist nicht das Problem. Es ist das Problem libsqlite3-ruby. –

11

Sie müssen wahrscheinlich den Rubin dev Paket. Für Ubuntu müssen Sie ruby1.8-dev installieren, das die Ruby-Header-Dateien enthält. Eine schnelle Google sagt, dass das Yum-Paket Ruby-devel ist. so laufen diese:

sudo yum install ruby-devel

0

Ich reparierte das Problem auf meinem OLPC (Fedora 9) von 'gcc' seltsam genug installieren. Es scheint, als hätte es eines dieser Dev-Pakete sein sollen, aber nein.

Auch in Bezug auf die anderen Pakete ist das Suffix "-devel", nicht "-dev", so stellen Sie sicher, dass Sie diejenigen, endend Recht bekommen: "ruby-devel", "sqlite-devel" ...

Sobald Sie das installiert haben, wenn Sie Fehler über Ihre Edelsteine ​​zu alt bekommen "< 1.3.1", wenn Sie versuchen, verschiedene Rails-Skripte zu starten, zB: script/server oder script/console, google "upgrade_rubygems", um das zu beheben Problem ...

HTH ...

5

sudo apt-get install ruby-dev

reparierte es für mich.

0

Ich hatte genau das gleiche Problem ... anstatt die fehlenden Teile zu vermischen, benutzte ich Synaptic auf unbuntu.

Das Schlüsselpaket für mich libsqlite-ruby1.9.1 ... war dokumentiert ich meine Erfahrung (als Referenz) mit diesem Fehler bei: Sqlite3-gem-error-during-bundle-install

8

ich konfrontiert Problem auf meinem Fedora 13 Box sqlite3-ruby gem Installation . Es wurde festgelegt, nachdem sudo yum sqlite-devel

2

Führen Sie den folgenden für Fedora OS installieren:

yum install rubygem-sqlite3 
+0

Das funktionierte aber nach "sudo yum install sqlite-devel" – Saad

0

Run "sudo yum sqlite-devel installieren" und dann "gem install sqlite3". Hatte das gleiche Problem auf meinem Fedora 15.

3

auf Ubuntu 9 und 10 Versuch:

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

Dann

laufen
gem install sqlite3 
5

Als ich das Problem hatte:

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. 

Für ich arbeitete, die "libsqlite3-dev" mit installieren:

apt-get install libsqlite3-dev 
+0

Das reparierte es für mich! +1 –

0

Auf alpin müssen Sie das Paket sqlite-dev installieren.

Verwandte Themen