9
votes

Problème Installation de SQLite3-RUBY!

J'ai des problèmes d'installation du joyau SQLITE3-RUBY sur Crunchbang Linux. Après avoir googler les dernières heures et après plusieurs personnes avec le même problème, je ne l'ai toujours pas obligée de travailler.

Voici ce que je vois après avoir essayé un 'Sudo Gem installer SQLITE3-RUBY'

Construire des extensions indigènes. Cela pourrait prendre un moment ...
Erreur: Erreur lors de l'installation de SQLITE3-RUBY:
Erreur: Impossible de construire une extension native de la gemme.

/usr/bin/ruby1.8 extconf.rb
Vérification de SQLite3.h ... oui
Vérification de sqlite3_libversion_number () dans -lsqlite3 ... oui
Vérification de rb_proc_arity () ... Non
Vérification de sqlite3_initialize () ... Non
SQLITE3-RUBY prend uniquement en charge les versions SQLITE3 3.6.16+, Merci de mettre à niveau!
* extconf.rb a échoué *
Ne pouvait pas créer de maquillage en raison d'une raison quelconque, probablement manque de
bibliothèques et / ou en-têtes nécessaires. Cochez le fichier mkmf.log pour plus de
des détails. Vous pouvez avoir besoin d'options de configuration.

Suivant, j'ai couru sur cette page; http://groups.google.com/group / SQLite3-Ruby / Browse_thread / Fil / F22D098B561C48AF / 6E754F7B2FC3CD75? # 6E754F7B2FC3CD75

J'ai téléchargé sqlite-amalgamation-3.7.0.1.tar.gz et a publié les commandes suivantes:

Tar ZXVF SQLite-AMALGAMATION-3.7.0.1.TAR.GZ
CD CD SQLITE-3.7.0.1
mkdir $ home / sqlite
./configure --prefix = $ home / sqlite
faire && faire installer
Sudo GEM Installer SQLITE3-RUBY - --WITH-SQLITE3-DIR = $ HOME / SQLITE

Cependant, je reçois toujours exactement la même erreur. J'ai utilisé 'sudo apt-obtenir installer sqlite3 libsqlite3-dev', mais j'ai toujours exactement la même erreur.

Des conseils?

Et comme petit de côté, comment j'utilise "sudo apt-get d'installation sqlite3", il attrape 3,5,9 au lieu du 3.7.0.1 téléchargé manuellement?


0 commentaires

7 Réponses :


3
votes

Ceci est dû à EXTCONF.RB Relever votre ancienne bibliothèque 3.5.9 lorsque vous testez des fonctions avant de mettre ensemble le maquillage.

Une solution pour couper ce court est de supprimer SQLITE3 et réessayez P>

sudo gem install sqlite3-ruby


0 commentaires

1
votes

J'ai eu le même problème. La solution de Jarek a fonctionné lorsque j'ai déplacé tous les fichiers (pas seulement libsqlite3.a ) à partir de ~ / sqlite / lib à gems / sqlite3-ruby-1.3.1 / ext / sqlite3 .


0 commentaires

15
votes

Installer une version inférieure de SQLite3-RUBY doit résoudre votre problème:

sudo gem install sqlite3-ruby --version=1.2.5


0 commentaires

1
votes

shawn, laissez-moi essayer d'élaborer.

Ruby s'adapte à la bibliothèque SQLITE3 en compilant des petits exemples et vérifiant si la compilée était réussie. Cela ramasse l'ancienne bibliothèque, qui n'inclut pas les fonctions requises.

La première solution consiste à supprimer l'ancienne bibliothèque et à diriger Ruby dans le répertoire que vous avez téléchargé la nouvelle version à. Selon le système que vous utilisez, vous devez choisir le bon gestionnaire de paquets: APT-GET, DPKG, YUM, YAST, IPKG, ... pour supprimer le package obsolète. Cela garantit que votre construction ne ramasse aucune vieille morceaux. Ensuite, vous devez vous assurer que vous soyez dirigé Ruby dans le bon répertoire où la nouvelle bibliothèque est située avec une option - -with-sqlite3-dir.

La deuxième solution est une sorte de hack. Il s'appuie sur C compilateur C ramassant les fichiers du répertoire actuel avant les autres. Vous pouvez utiliser CP, MC ou tout autre gestionnaire de fichiers pour copier les bibliothèques .a et .h en-têtes vers le répertoire de construction. La construction devrait être correcte, mais votre commande SQLite3 sera toujours l'ancienne, éventuellement incompatible avec les bases de données créées avec votre nouvelle bibliothèque.

hth, jarek


0 commentaires

2
votes

par le SQLITE3-RUBY (maintenant nommé SQLITE3) README.RDOC, vous pouvez utiliser la méthode suivante pour diriger vers les bibliothèques correctes:

Si vous avez installé SQLite3 dans un emplacement non standard, vous pouvez spécifier l'emplacement de l'inclusion et de la lib fichiers en faisant:

gem installation sqlite3 - --with-sqlite3-include = / opt / local / include \

- avec-sqlite3-lib = / opt / local / lib


1 commentaires

Si vous avez téléchargé et installé SQLite3 de la source dans / usr / local, c'est la voie à suivre! Merci.



1
votes

J'ai eu un problème similaire - j'ai simplement commenté la ligne ennuyeuse suivante de ./gemfile dans le répertoire de projet à: xxx

et a fait: xxx < / Pre>

Script / Rails Server travaillait à nouveau bien. PHEW!

Semble que SQLite3 est dupliqué - bizarre


0 commentaires

1
votes

J'ai couru dans le même problème sur OSX 10.5.8

Les solutions étaient assez simples:

1.- xcode téléchargé à partir d'Apple Dev.: xcode314_2809_developerdvd.dmg (besoin d'inscription) 2.- Télécharger et installer MacPorts: http: //distfiles.macports .org / Macports / MacPorts-1.9.2-10.5-léopard.dmg 3.- Port sudo Installez SQLITE3

Et tout fonctionnait comme prévu.

J'espère que ce résultat utile!


0 commentaires