web-dev-qa-db-fra.com

erreur d'installation sqlite3-Ruby sur Ubuntu

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

 Construire des extensions natives. Cela pourrait prendre un certain temps ...
 ERREUR: erreur lors de l’installation de sqlite3-Ruby: 
 ERREUR: Echec de la création de l'extension native de gem .

/Usr/bin/Ruby1.8 extconf.rb 
 En recherchant sqlite3.h ... no 
 Sqlite3.h est manquant. Essayez 'port install sqlite3 + universal' ou 'yum install sqlite3-devel' 
 *** extconf.rb a échoué *** 
 Impossible de créer le fichier Makefile pour une raison quelconque, probablement le manque de bibliothèques nécessaires 
/ou en-têtes. Consultez le fichier mkmf.log pour plus de détails 
 Vous aurez peut-être besoin d'options de configuration .

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


 Les fichiers Gem restent installés dans /usr/lib/Ruby/gems/1.8/gems/sqlite3-Ruby-1.3. 1 pour inspection .
 Résultats consigné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 installe 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

251
Dmitry

Vous avez besoin des en-têtes de développement SQLite3 pour que l’extension native de gem soit compilée. Vous pouvez les installer en exécutant (éventuellement avec Sudo):

apt-get install libsqlite3-dev
573
marshluca

Vous avez juste besoin d'un -- dedans.

Sudo gem install sqlite3-Ruby -- --with-sqlite3-include=/usr/include

Cela spécifie que l'option n'est pas de gem directement, mais le gem spécifique.

14
Kurt

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 https://stackoverflow.com/a/3649005/417267 est la solution.

8
Dmitry

Si vous utilisez Ubuntu et que vous utilisez RVM pour Ruby on Rails, veuillez ajouter FIRST:

Sudo apt-get install libxslt-dev libxml2-dev

OU Vous pouvez vérifier avec ces commandes:

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

Sudo apt-get install sqlite3 libsqlite3-dev

-Maintenant, installez la pierre précieuse sqlite 

 [Sudo] gem install sqlite3-Ruby

L'utilisation d'Ubuntu n'a pas besoin de Sudo.

Bonne chance! Note: J'utilise Ubuntu 10.10 et ça marche.

6
anguu

C'est ce que j'ai fait:

wget http://www.sqlite.org/sqlite-amalgamation-3.7.2.tar.gz
tar xzf sqlite-amalgamation-3.7.2.tar.gz
cd sqlite-3.7.2/

./configure
make
make install

gem install Rails sqlite3-Ruby

de: http://cuasan.wordpress.com/2010/10/13/Rails-3-on-debian-with-sqlite-3/

6
MikeEL

C'était simplement suffisant pour que ça marche

Sudo apt-get install libsqlite3-dev

Merci à marshluca

6
Bernard Banta

EssayéTOUSd'autres solutions, aucune n'a aidé.

Il s'est avéré que vous avez également besoin du paquet dev 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

ça devrait aller. Une fois installé (et vous avez les paquetages sqlite et sqlite-dev installés)

Sudo gem install sqlite3-Ruby

fonctionne comme un charme.

4
mhaligowski

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
2
jstreebin

Si ce même problème et les suivants ont fonctionné pour moi:

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

Allez sur la page de téléchargement et récupérez le source. La version la plus récente 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 quand vous installez la gemme ...

gem installer sqlite3-Ruby - --with-sqlite3-dir =/un/chemin/dans/mon/home

1
EnotionZ

La solution consiste à ajouter -- pour séparer les paramètres configure des paramètres gem.

au lieu de

Sudo gem install sqlite3-Ruby --without-sqlite3-include=/usr/include

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

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

Cela devrait vous éviter cette erreur:

ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --without-sqlite3-include=/usr/include
1
stefanB

De sqlite3-Ruby gem ne trouve pas sqlite3.h sur ubuntu :

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

Sudo apt-get install gcc libsqlite3-dev Ruby1.8-dev
Sudo gem install sqlite3

Apparemment, vous obtenez une erreur erronée indiquant une sqlite3.h manquante lorsque le problème actuel manque à gcc lui-même.

1
Jeroen Vijfhuizen

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 à mentalized pour celui-là.

0
ben author

Aucune des solutions mentionnées ci-dessus n'a fonctionné pour moi, même après avoir installé Ruby2.5-dev et libsqlite3-dev. Puis essayé d'utiliser PostgreSql au lieu de sqlite. Cela a bien fonctionné. Pour utiliser PostgreSql au lieu de sqlite, utilisez cette commande lors de la création du projet Rails.

Rails [_VERSION_] new project_name -d postgresql

Si vous souhaitez utiliser MySql, utilisez mysql au lieu de postgresql.

Rails [_VERSION_] new project_name -d mysql

Sinon, vous pouvez essayer sans sqlite.

bundle install --without sqlite
0

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

0
Daniel O'Hara

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" . Vous trouverez plus d’informations dans le fichier README.
  2. Puis passé ce chemin au programme d’installation de sqlite3-Ruby (n’oubliez pas le "-").
0
LoganMzz

Oubliez tout et faites ceci,

courir

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

C'est pour rhel, courez même pour Ubuntu.

0
Aakash Parashar

Vous avez cassé la version de RVM. Ubuntu fait quelque chose à RVM qui produit beaucoup d’erreurs, le seul moyen sûr de le réparer pour l’instant est de: Sudo apt-get --purge supprimer Ruby-rvm Sudo puis redémarrez votre ordinateur. installez RVM:\curl -L https://get.rvm.io | bash -s stable --Ruby --autolibs = enable --auto-dotfiles Si vous pensez que vous avez besoin d'aide, consultez Installation de Ruby sur Ubuntu 12.04, qui donne un peu plus d'explications.

0
Jack Demin

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

0
theGrayFox