65 votes

Pourquoi ne puis-je pas installer la gemme SQLite ?

J'essaie d'installer la gemme SQLite sur une machine 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 ne fait que répéter ce qui a déjà été envoyé à la console. Comment puis-je installer cette gemme ?

0 votes

J'ai eu cette erreur constamment aussi ! !

1 votes

L'indice dans l'erreur est "can't find header files for ruby" ... cela signifie que vous aurez besoin du paquetage de développement pour ruby.

0 votes

@salt.racer / N'IMPORTE QUI - pouvez-vous indiquer quel(s) paquet(s) est (sont) nécessaire(s) ?

138voto

Jörg W Mittag Points 153275

Le RubyGem SQLite n'est pas vraiment une Ruby Gem, c'est un " C Gem", c'est-à-dire qu'il est écrit en C. Cela signifie qu'il doit être compilé et lié à l'interpréteur Ruby lorsque vous l'installez et que pour ce 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, sur les systèmes RedHat, ces fichiers d'en-tête sont généralement regroupés dans un paquet séparé, appelé <whatever>-dev . Donc, dans ce cas, vous devrez installer le programme ruby-dev et éventuellement le paquet libsqlite3-dev (Ubuntu) ou sqlite-devel (Fedora) ainsi que le paquet.

Cependant, vous feriez mieux d'installer le logiciel pré-packagé de votre système d'exploitation. libsqlite3-ruby de cette façon, toutes les dépendances sont automatiquement satisfaites.

(Note : tous les noms de paquets sont tirés du néant, ils peuvent être différents sur votre système).

3 votes

Damn SO est cool, c'est en fait la bonne réponse... J'étais perdu en essayant d'installer SqlLite et le problème produisait de nouveaux messages d'erreur toutes les minutes. Maintenant si l'auteur de la question pouvait juste marquer ceci comme la bonne réponse, nous serions en affaires.

8 votes

Sur Ubuntu, j'ai fait apt-get install libsqlite3-ruby et cela a fonctionné parfaitement. En tant que Root, bien sûr...

3 votes

Ou si vous vouliez installer la gemme, vous auriez besoin de apt-get install ruby-dev, comme le dit Jorg.

13voto

hacintosh Points 1726

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. Une rapide recherche sur Google indique que le paquet yum est ruby-devel, alors lancez ceci :

sudo yum install ruby-devel

10voto

Rahul Points 81

J'ai rencontré un problème pour installer la gemme sqlite3-ruby sur ma boîte fedora 13. Il a été résolu après sudo yum install sqlite-devel

6voto

Sacha Points 31
sudo apt-get install ruby-dev

Je l'ai réparé.

0 votes

Cette astuce l'a réglé pour moi. Merci.

3voto

ldemon Points 21

Sur Ubuntu 9 et 10, essayez :

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

Ensuite, exécutez

gem install sqlite3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X