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?
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.)
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
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
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
Sur Ubuntu 9 et 10 essayez:
sudo apt-get install ruby-dev
sudo apt-get install sqlite3-dev
Puis exécutez
gem install sqlite3
Exécutez ce qui suit Pour Fedora OS:
yum install rubygem-sqlite3
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.
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.
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...
Exécutez "sudo yum install sqlite-devel", puis "gem install sqlite3". J'ai eu le même problème sur mon Fedora 15.
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
Sur alpine, vous devez installer le paquet sqlite-dev
.