Perché non riesco a installare la gem di SQLite?

Sto provando ad installare la gem SQLite su una scatola di Fedora 9 Linux con Ruby 1.8.6, Rails 2.2.2, gem 1.3 e sqlite-3.5.9. Ecco il comando che sto eseguendo e i suoi risultati:

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 ripete semplicemente ciò che è stato già inviato alla console. Come posso installare questo gioiello?

Il SQLite RubyGem non è in realtà un Ruby Gem, è un ” C Gem”, IOW è scritto in C. Questo significa che deve essere compilato e collegato all’interprete Ruby quando lo si installa e per farlo ha bisogno del File di intestazione C per l’interprete Ruby.

Se si compila direttamente Ruby, quei file di intestazione verranno installati automaticamente, tuttavia, nei sistemi RedHat-ish, tali file di intestazione sono solitamente confezionati in un pacchetto separato, chiamato -dev . Quindi, in questo caso è necessario installare il pacchetto ruby-dev e possibilmente anche il pacchetto libsqlite3-dev (Ubuntu) o sqlite-devel (Fedora).

Tuttavia, potrebbe essere meglio installare semplicemente il pacchetto libsqlite3-ruby preconfigurato del sistema operativo, in questo modo tutte le dipendenze vengono automaticamente soddisfatte.

(Nota: tutti i nomi dei pacchetti estratti dal nulla potrebbero essere diversi sul tuo sistema.)

Probabilmente hai bisogno del pacchetto ruby ​​dev. Per Ubuntu devi installare ruby1.8-dev che include i file di intestazione ruby. Un rapido google dice che il pacchetto yum è ruby-devel. quindi esegui questo:

sudo yum install ruby-devel

Ho avuto problemi con l’installazione di gem sqlite3-ruby sulla mia fedora 13 box. È stato corretto dopo sudo yum install sqlite-devel

Quando ho avuto questo problema:

 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. 

Per me ha funzionato, installando ” libsqlite3-dev ” con:

 apt-get install libsqlite3-dev 
 sudo apt-get install ruby-dev 

Risolto il problema per me.

Su Ubuntu 9 e 10 prova:

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

Quindi corri

 gem install sqlite3 

Esegui quanto segue per il sistema operativo Fedora:

 yum install rubygem-sqlite3 

Hai tutto il codice sorgente richiesto per creare sqlite3-ruby? Gem sta cercando di compilare un codice C e non riesce a trovare le intestazioni. Probabilmente si può usare un rpm fedora per sqlite3-ruby (non uso fedora, ma sono sicuro che ne esiste uno) se si preferisce rinunciare alla compilazione. Personalmente per roba ruby, preferisco usare la gem piuttosto che il sistema di confezionamento di una distro.

Non ho molta familiarità con Fedora, ma in Ubuntu quando installi i pacchetti hai apt-get, e devi installare build-essentials che include gcc e altri strumenti di compilazione per C. Direi che potrebbe essere il tuo problema e dai un’occhiata a come si può installare usando RPM o apt-get su Fedora.

Ho risolto il problema sul mio OLPC (Fedora 9) installando “gcc” abbastanza stranamente. Sembra che avrebbe dovuto essere uno di quei pacchetti di sviluppo, ma no.

Inoltre, per quanto riguarda gli altri pacchetti, il suffisso è “-devel”, non “-dev”, quindi assicurati di ottenere quelli che terminano a destra: “ruby-devel”, “sqlite-devel” …

Una volta installato, se si verificano errori sulle gemme che sono troppo vecchie “<1.3.1" quando si tenta di eseguire vari script di rotaie, ad esempio: script / server o script / console, google "upgrade_rubygems" per risolvere il problema. ..

HTH …

Esegui “sudo yum install sqlite-devel” e poi “gem install sqlite3”. Ho avuto lo stesso problema sul mio Fedora 15.

Ho avuto lo stesso esatto problema … invece di gemare i pezzi mancanti ho usato synaptic su unbuntu.

Il pacchetto chiave per me era libsqlite-ruby1.9.1 … Ho documentato la mia esperienza (per riferimento) con questo errore su: Sqlite3-gem-error-during-bundle-install

Su Alpine, devi installare il pacchetto sqlite-dev .