web-dev-qa-db-fra.com

Pourquoi ne puis-je pas installer la gem SQLite?

J'essaye d'installer la gem 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 je lance 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 cette gemme?

59
Eric Noob

Le SQLite RubyGem n'est pas réellement un Ruby Gem, c'est un "CGem", IOW c'est écrit en C. Cela signifie qu'il doit être compilé et lié à l'interpréteur Ruby lors de l'installation 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. Toutefois, dans les systèmes RedHat-ish, ces fichiers d’en-tête sont généralement regroupés dans un package séparé, appelé <whatever>-dev. Donc, dans ce cas, vous devrez également installer le paquetage Ruby-dev et éventuellement le paquetage 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 afin que toutes les dépendances soient automatiquement satisfaites.

(Remarque: tous les noms de paquets retirés du ciel, pourraient être différents sur votre système.)

134
Jörg W Mittag

Vous avez probablement besoin du paquet dev Ruby. 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 lancez ceci:

Sudo yum installer Ruby-devel

12
hacintosh

J'ai eu du mal à installer sqlite3-Ruby gem sur ma boîte Fedora 13. Elle a été corrigée après Sudo yum install sqlite-devel  

9
Rahul

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, installer " libsqlite3-dev " avec:

apt-get install libsqlite3-dev
8
matiasmasca
Sudo apt-get install Ruby-dev

Corrigé pour moi.

6
Sacha

Sur Ubuntu 9 et 10, essayez:

Sudo apt-get install Ruby-dev
Sudo apt-get install sqlite3-dev

Puis courir 

gem install sqlite3
3
ldemon

Exécutez ce qui suit pour Fedora OS:

yum install rubygem-sqlite3
2
Chase

Avez-vous tout le code source requis pour compiler sqlite3-ruby? Gem essaie de compiler du code C et ne trouve pas les en-têtes. Vous pouvez probablement utiliser un rpm Fedora pour sqlite3-Ruby (je n'utilise pas Fedora, mais je suis sûr qu'il en existe un) si vous préférez ne pas compiler. Personnellement, pour les produits Ruby, je préfère utiliser un bijou plutôt que le système d’emballage d’une distro.

1
barneytron

J'ai eu exactement le même problème ... au lieu de gemmer 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 à l'adresse suivante: Sqlite3-gem-error-During-bundle-install

0
Riding Rails

J'ai également rencontré le même problème, le problème est que votre installation de Linux nécessite l'installation des bibliothèques de développement pour SQLite3 afin de construire la gem.

voici comment j'ai résolu le problème

Ouvrez votre terminal et lancez les commandes suivantes

Sudo apt-get install sqlite3

Sudo apt-get install libsqlite3-dev

Et essayez à nouveau d'installer Sqlite3 gem à l'aide de cette commande

gem install sqlite3

C'est tout.

j'espère que cela aide

0
Promise Preston

Sur Alpine, vous devez installer le package sqlite-dev.

0
Omer Levi Hevroni

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

De plus, en ce qui concerne les autres paquets, le suffixe est "-devel", pas "-dev", assurez-vous donc que les fins suivantes sont exactes: "Ruby-devel", "sqlite-devel" ...

Une fois que vous l'avez installé, si vous rencontrez des erreurs d'ancienneté de vos gems "<1.3.1" lorsque vous essayez d'exécuter divers scripts Rails, par exemple: script/serveur ou script/console, recherchez "upgrade_rubygems" dans Google pour résoudre ce problème. ..

HTH ...

0
cosmo lee

J'ai rencontré cette erreur lors de l'exécution de bundle install après avoir généré une application react-Rails sur Fedora 29. J'ai été en mesure d'identifier un package de développement approprié en exécutant dnf search sqlite3, puis je l'ai installé dnf install libsqlite3x-devel. Cela a résolu le problème pour moi.

0
g4k13

Je ne connais pas vraiment Fedora, mais sous Ubuntu, lorsque vous installez des paquets, vous avez apt-get, et vous devez installer les éléments essentiels de la compilation, notamment gcc et d'autres outils de compilation pour C. , et vous regardez comment l’installation peut être effectuée en utilisant RPM ou apt-get sur Fedora.

0
Tim Knight

Exécutez "Sudo yum install sqlite-devel" puis "gem install sqlite3". Eu le même problème sur mon Fedora 15.

0
rapidror