Pourquoi ne puis-je pas installer la gemme SQLite?

J'essaie d'installer la gemme SQLite sur une boîte Linux Fedora 9 avec Ruby 1.8.6, Rails 2.2.2, gem 1.3 et sqlite-3.5.9. Voici la commande que j'exécute et ses résultats:

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 répète simplement ce qui a déjà été envoyé à la console. Comment puis-je installer ce bijou?

57
demandé sur Makoto 2009-01-07 20:30:55

13 réponses

Le rubygem SQLite N'est pas en fait un Gem Ruby, c'est un "CGem", IOW il est écrit en C. Cela signifie qu'il doit être compilé et lié à L'interpréteur Ruby lorsque vous l'installez et pour faire que Il a besoin des fichiers D'en-tête C pour L'interpréteur Ruby.

Si vous compilez Ruby vous-même, ces fichiers d'en-tête seront installés automatiquement, cependant, dans les systèmes RedHat-ish, ces fichiers d'en-tête sont généralement empaquetés dans un paquet séparé, appelé <whatever>-dev. Donc, dans dans ce cas, vous devrez également installer le paquet ruby-dev et éventuellement le paquet libsqlite3-dev (Ubuntu) ou sqlite-devel (Fedora).

Cependant, il serait peut-être préférable d'installer le paquet libsqlite3-ruby préemballé de votre système d'exploitation, de sorte que toutes les dépendances sont automatiquement satisfaites.

(Remarque: tous les noms de paquets retirés de l'air, peuvent être différents sur votre système.)

130
répondu Jörg W Mittag 2012-04-26 08:01:47

Vous avez probablement besoin du paquet ruby dev. Pour Ubuntu, vous devez installer ruby1.8-dev qui inclut les fichiers d'en-tête ruby. Un rapide google dit que le paquet yum est ruby-devel. alors exécutez ceci:

Sudo yum installer ruby-devel

12
répondu hacintosh 2009-01-08 02:55:43

J'ai rencontré un problème d'installation de sqlite3 - Ruby gem sur ma boîte fedora 13. Il a été corrigé après sudo yum install sqlite-devel

9
répondu Rahul 2011-01-06 10:42:07

Quand j'ai eu ce problème:

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.

Pour moi travaillé, l'installation de la "libsqlite3-dev" avec:

apt-get install libsqlite3-dev
7
répondu matiasmasca 2016-05-12 12:33:46
sudo apt-get install ruby-dev

L'a réparé pour moi.

6
répondu Sacha 2018-05-10 09:24:48

Sur Ubuntu 9 et 10 essayez:

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

Puis exécutez

gem install sqlite3
3
répondu ldemon 2011-08-23 21:19:05

Exécutez ce qui suit Pour Fedora OS:

yum install rubygem-sqlite3
2
répondu Chase 2011-12-15 17:49:23

Avez-vous tout le code source nécessaire pour construire sqlite3-ruby? Gem essaie de compiler du code C et ne peut pas trouver les en-têtes. Vous pouvez probablement utiliser un fedora rpm pour sqlite3-ruby (je n'utilise pas fedora, mais je suis sûr qu'il en existe un) si vous préférez renoncer à la compilation. Personnellement, pour Ruby stuff, je préfère utiliser gem plutôt que le système d'emballage d'une distribution.

1
répondu barneytron 2009-01-07 17:44:00

Je ne suis pas vraiment familier avec Fedora, mais dans Ubuntu lorsque vous installez des paquets, vous avez apt-get, et vous devez installer le build-essentials qui inclut gcc et d'autres outils de compilation pour C. je dirais que cela pourrait être votre problème, et vous faites regarder comment cela peut être installé en utilisant RPM ou apt-get sur Fedora.

0
répondu Tim Knight 2009-01-07 17:53:51

J'ai corrigé le problème sur mon OLPC (Fedora 9) en installant 'gcc' curieusement. Il semble que cela aurait dû être l'un de ces paquets de développement, mais non.

Aussi, en ce qui concerne les autres paquets, le suffixe est "- devel", pas "- dev", alors assurez-vous d'avoir ceux qui se terminent bien:" ruby-devel","sqlite-devel"...

Une fois que vous l'avez installé, si vous obtenez des erreurs sur le fait que vos gemmes sont trop vieilles "

HTH...

0
répondu 2009-05-15 21:48:32

Exécutez "sudo yum install sqlite-devel", puis "gem install sqlite3". J'ai eu le même problème sur mon Fedora 15.

0
répondu rapidror 2011-08-01 05:38:51

J'ai eu ce même problème...au lieu de gem'ing les pièces manquantes, j'ai utilisé synaptic sur unbuntu.

Le paquet de clé pour moi était libsqlite-ruby1.9 .1... J'ai documenté mon expérience (pour référence) avec cette erreur à : Sqlite3-gem-erreur-cours-bundle-installer

0
répondu Riding Rails 2012-12-04 06:24:16

Sur alpine, vous devez installer le paquet sqlite-dev.

0
répondu Omer Levi Hevroni 2018-02-13 09:45:02