erreur d'installation sqlite3-ruby sur Ubuntu

257

J'ai l'erreur suivante lors de l'installation de sqlite3-ruby:

Création d'extensions natives. Ça pourrait prendre un moment...
ERREUR: Erreur lors de l'installation de sqlite3-ruby:
    ERREUR: échec de la création de l'extension native de gemme.

/usr/bin/ruby1.8 extconf.rb
vérification de sqlite3.h ... non
sqlite3.h est manquant. Essayez 'port install sqlite3 + universal' ou 'yum install sqlite3-devel'
*** extconf.rb a échoué ***
Impossible de créer le Makefile pour une raison quelconque, probablement le manque de
bibliothèques et / ou en-têtes nécessaires. Consultez le fichier mkmf.log pour en savoir plus
détails. Vous pouvez avoir besoin d'options de configuration.

Options de configuration fournies:
    --with-opt-dir
    --with-opt-dir
    --with-opt-include
    --without-opt-include = $ {opt-dir} / include
    --with-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --with-make-prog
    --sans-faire-prog
    --srcdir =.
    --curdir
    --ruby = / usr / bin / ruby1.8
    --with-sqlite3-dir
    --sans-sqlite3-dir
    --with-sqlite3-include
    --without-sqlite3-include = $ {sqlite3-dir} / include
    --with-sqlite3-lib
    --without-sqlite3-lib = $ {sqlite3-dir} / lib


Les fichiers Gem resteront installés dans /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 pour inspection.
Résultats enregistrés dans /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out

sqlite3.h est situé dans / usr / include /

sudo gem install sqlite3-ruby --without-sqlite3-include = / usr / include

ne fonctionne pas

ERREUR: lors de l'exécution de gem ... (OptionParser :: InvalidOption)
    option non valide: --without-sqlite3-include = / usr / include

Ubuntu 10.04

Dmitry
la source
même problème - ce n'est pas répondu. sqlite3.h est inexistant et tous les packages ci-dessus sont installés. ubunut 10.10
rrt
Essayez de sudo apt-get install build-essential puis sudo gem install sqlite3-ruby
Dmitry
1
il a depuis changé pour juste sqlite3, passqlite3-ruby
kelloti
3
A travaillé pour moi sur Ubuntu 12.04 comme l'a suggéré Marshluca. sudo apt-get install libsqlite3-dev
panta

Réponses:

585

Vous avez besoin des en-têtes de développement SQLite3 pour compiler l'extension native de la gemme. Vous pouvez les installer en exécutant (éventuellement avec sudo):

apt-get install libsqlite3-dev
marshluca
la source
26
J'en avais besoin sudo apt-get install libsqlite3-dev. Merci.
B Seven
6
A fonctionné comme un charme. Merci.
frank.m
Merci, cela n'aurait certainement pas été évident.
james_womack
15

Vous en avez juste besoin --.

sudo gem install sqlite3-ruby -- --with-sqlite3-include=/usr/include

Cela spécifie que l'option n'est pas de gemmer directement, mais la gemme spécifique.

Kurt
la source
8

Dans mon cas, je n'ai pas de compilateurs de base installés, donc

sudo apt-get install build-essential

résolu mon problème, mais pour la plupart des gens, je pense que https://stackoverflow.com/a/3649005/417267 est la solution.

Dmitry
la source
1
C'était mon problème. Merci.
j sad
6

Si vous utilisez ubuntu et que vous utilisez RVM pour le rubis sur rails, veuillez d'abord ajouter:

sudo apt-get install libxslt-dev libxml2-dev

OU Vous pouvez vérifier avec ces commandes:

Cette commande préparera pour vous deux packages: sqllite3 et libsqlite3-dev

sudo apt-get install sqlite3 libsqlite3-dev

-Maintenant, installez sqlite gem

 [sudo] gem install sqlite3-ruby

-Utiliser Ubuntu n'a pas besoin de sudo.

Bonne chance! Remarque: j'utilise Ubuntu 10.10 et cela fonctionne.

anguu
la source
6

C'était tout simplement suffisant pour le faire fonctionner

sudo apt-get install libsqlite3-dev

Merci à marshluca

Bernard Banta
la source
4

J'ai essayé TOUTES les autres solutions, aucune n'a aidé.

Il s'est avéré que vous avez également besoin d'un package de développement pour ruby ​​lui-même. Pour moi, ça a aidé

sudo apt-get install ruby-full

Il a cependant beaucoup de dépendances désagréables (comme emacs, wtf?), Juste

sudo apt-get install ruby1.8-dev

devrait être bien. Une fois qu'il est installé (et que vous avez installé les packages sqlite et sqlite-dev)

sudo gem install sqlite3-ruby

fonctionne comme un charme.

mhaligowski
la source
1
travaillé pour moi aussi. sudo apt-get install ruby1.9.1-dev libsqlite3-dev
rajsite
2

Voici une meilleure réponse de HEROKU - ne peut pas exécuter git push heroku master

Puisque vous ne pouvez pas utiliser sqlite3 sur heroku, ajoutez ceci à votre Gemfile:

group :production do
  gem 'pg'
end
group :development, :test do
  gem 'sqlite3'
end
jstreebin
la source
1

Avait ce même problème et ce qui suit a fonctionné pour moi:

compilez sqlite3 en tant que bibliothèque statique, installez quelque part dans votre répertoire personnel, puis fournissez cette option pour le processus d'installation de gem.

Accédez à la page de téléchargement et récupérez la source. La version la plus récente à l'heure actuelle est http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz

tar -xf sur le fichier ou faites ce que vous faites normalement pour décompresser; entrer dans le répertoire

./configure --disable-shared --enable-static --prefix = / some / path / in / my / home

compiler, installer et lorsque vous installez la gemme ...

gem install sqlite3-ruby - --with-sqlite3-dir = / some / path / in / my / home

EnotionZ
la source
1

De sqlite3-ruby gem ne peut pas trouver sqlite3.h sur ubuntu :

Vous devez également installer gcc lui-même, donc au total ce serait:

sudo apt-get install gcc libsqlite3-dev ruby1.8-dev
sudo gem install sqlite3

Apparemment, vous obtenez une erreur erronée pointant vers un sqlite3.h manquant lorsque le problème réel manque lui-même gcc.

Jeroen Vijfhuizen
la source
1

La solution consiste à ajouter --des configureparamètres séparés des gemparamètres.

au lieu de

sudo gem install sqlite3-ruby --without-sqlite3-include=/usr/include

essayez ceci, le tout sur une seule ligne, assurez-vous d'inclure --après le dernier gemparamètre et avant les configureparamètres:

sudo gem install sqlite3 --
--with-sqlite3-lib=/somewhere/local/lib
--with-sqlite3-include=/somewhere/local/include

Cela devrait vous permettre de contourner cette erreur:

ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --without-sqlite3-include=/usr/include
stefanB
la source
C'était exactement ce dont j'avais besoin - un grand merci à cet auteur!
David Loy
0

Non --without-sqlite3-include=/usr/include, mais --with-sqlite3-include=/usr/include.

Daniel O'Hara
la source
Si sqlite3.h est vraiment manquant et n'est pas dans / usr / include comme vous l'avez dit, alors vous pouvez l'installer avec: sudo apt-get install libsqlite3-dev
Kurt
J'ai déjà fait ça .. Ça n'aide pas. J'ai sqlite3 et libsqlite3-dev installés.
Dmitry
0

C'est exactement le même problème que j'ai eu il y a quelques semaines. J'ai découvert que je devais télécharger les en-têtes / bibliothèques les plus récents à partir de la page de téléchargement SQLite. Essayez-le, j'espère que cela vous aidera!

theGrayFox
la source
0

Pour moi, le problème a été résolu en obtenant mkmf, qui est en ruby1.8-dev.

sudo apt-get install ruby1.8-dev

Merci à mentalisé pour celui-là.

ben auteur
la source
0

Je suis d'accord avec Danya Vershinin & EnotionZ .

Si vous ne pouvez pas utiliser apt-get:

  1. compilez et installez sqlite3 à partir des sources en spécifiant votre propre chemin "préfixe". Plus d'informations peuvent être trouvées dans le README.
  2. Ensuite, j'ai transmis ce chemin au programme d'installation sqlite3-ruby (n'oubliez pas le "-").
LoganMzz
la source
0

Vous avez une version cassée de RVM. Ubuntu fait quelque chose à RVM qui produit beaucoup d'erreurs, le seul moyen sûr de corriger pour le moment est de: sudo apt-get --purge supprimer ruby-rvm sudo rm -rf / usr / share / ruby…, si cela n'aide pas puis redémarrez votre ordinateur. installer RVM: \ curl -L https://get.rvm.io | bash -s stable --ruby --autolibs = enable --auto-dotfiles Si vous trouvez que vous avez besoin d'un peu de main, jetez un œil à Installer Ruby sur Ubuntu 12.04, qui donne un peu plus d'explication

Jack Demin
la source
0

Oubliez tout et faites cela,

courir

yum install ruby-devel sqlite sqlite-devel ruby-rdoc
yum install make gcc
gem install sqlite3-ruby
bundle install

C'est pour rhel, exécutez la même chose pour ubuntu.

Aakash Parashar
la source
0

Aucune des solutions mentionnées ci-dessus n'a fonctionné pour moi, même après l'installation de ruby2.5-devet libsqlite3-dev. Ensuite, j'ai essayé d'utiliser PostgreSqlau lieu de sqlite. Cela a bien fonctionné. Pour utiliser à la PostgreSqlplace de sqlite, utilisez cette commande lors de la création du railsprojet.

rails [_VERSION_] new project_name -d postgresql

Si vous souhaitez utiliser MySqlalors utilisez mysqlau lieu de postgresql.

rails [_VERSION_] new project_name -d mysql

Sinon, vous pouvez essayer sans sqlite.

bundle install --without sqlite
MARYLAND. Khairul Basar
la source
0

Je viens de passer à sqlite3-ruby '1.2.2'

nils petersohn
la source