SQLite3-Ruby Installationsfehler unter Ubuntu

257

Ich habe den folgenden Fehler während der Installation von sqlite3-ruby:

Native Erweiterungen erstellen. Dies könnte eine Weile dauern ...
FEHLER: Fehler beim Installieren von sqlite3-ruby:
    FEHLER: Fehler beim Erstellen der nativen Erweiterung für Edelsteine.

/usr/bin/ruby1.8 extconf.rb
nach sqlite3.h suchen ... nein
sqlite3.h fehlt. Versuchen Sie 'port install sqlite3 + universal' oder 'yum install sqlite3-devel'
*** extconf.rb fehlgeschlagen ***
Makefile konnte aus irgendeinem Grund nicht erstellt werden, wahrscheinlich mangels
notwendige Bibliotheken und / oder Header. Überprüfen Sie die Datei mkmf.log auf weitere Informationen
Einzelheiten. Möglicherweise benötigen Sie Konfigurationsoptionen.

Bereitgestellte Konfigurationsoptionen:
    --with-opt-dir
    --ohne Opt-Dir
    --with-opt-include
    --without-opt-include = $ {opt-dir} / include
    --with-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --with-make-prog
    --ohne 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


Gem-Dateien bleiben zur Überprüfung in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 installiert.
Ergebnisse protokolliert unter /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out

sqlite3.h befindet sich in / usr / include /

sudo gem installiere sqlite3-ruby - ohne-sqlite3-include = / usr / include

funktioniert nicht

FEHLER: Während der Ausführung von gem ... (OptionParser :: InvalidOption)
    ungültige Option: --without-sqlite3-include = / usr / include

Ubuntu 10.04

Dmitry
quelle
gleiches Problem - dies wird nicht beantwortet. sqlite3.h ist nicht vorhanden und alle oben genannten Pakete sind installiert. ubunut 10.10
rrt
Versuchen Sie, sudo apt-get install build-essential und dann sudo gem install sqlite3-ruby
Dmitry
1
es hat sich seitdem zu just sqlite3, notsqlite3-ruby
kelloti
3
Arbeitete für mich am Ubuntu 12.04, wie Marshluca vorschlug. sudo apt-get install libsqlite3-dev
panta

Antworten:

585

Sie benötigen die SQLite3-Entwicklungsheader, damit die native Erweiterung des Gems kompiliert werden kann. Sie können sie installieren, indem Sie (möglicherweise mit sudo) Folgendes ausführen :

apt-get install libsqlite3-dev
Marshluca
quelle
26
Ich brauchte sudo apt-get install libsqlite3-dev. Vielen Dank.
B Sieben
6
Lief wie am Schnürchen. Vielen Dank.
frank.m
Danke - das wäre definitiv nicht offensichtlich gewesen.
James_womack
15

Du brauchst nur einen --drin.

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

Das gibt an, dass die Option nicht direkt gem, sondern der spezifische Edelstein ist.

Kurt
quelle
8

In meinem Fall habe ich also keine grundlegenden Compiler installiert

sudo apt-get install build-essential

Ich habe mein Problem gelöst, aber für die meisten Leute ist https://stackoverflow.com/a/3649005/417267 die Lösung.

Dmitry
quelle
1
Das war mein Problem. Vielen Dank.
j traurig
6

Wenn Sie in Ubuntu arbeiten und RVM für Ruby on Rails verwenden, fügen Sie bitte ZUERST hinzu:

sudo apt-get install libxslt-dev libxml2-dev

ODER Sie können mit diesen Befehlen überprüfen:

Dieser Befehl bereitet für Sie zwei Pakete vor: sqllite3 und libsqlite3-dev

sudo apt-get installiere sqlite3 libsqlite3-dev

-Jetzt installieren Sie SQLite Gem

 [sudo] gem install sqlite3-ruby

- Ubuntu braucht kein Sudo.

Viel Glück! Hinweis: Ich verwende Ubuntu 10.10 und es funktioniert.

anguu
quelle
6

Dies war einfach genug, um es zum Laufen zu bringen

sudo apt-get install libsqlite3-dev

Danke an Marshluca

Bernard Banta
quelle
4

Versuchte ALLE anderen Lösungen, keine half.

Es stellte sich heraus, dass Sie auch ein Entwicklungspaket für Ruby selbst benötigen. Für mich hat es geholfen

sudo apt-get install ruby-full

Es hat viele böse Abhängigkeiten (wie Emacs, WTF?), Nur

sudo apt-get install ruby1.8-dev

sollte gut sein. Nach der Installation (und Sie haben die Pakete sqlite und sqlite-dev installiert)

sudo gem install sqlite3-ruby

klappt wunderbar.

mhaligowski
quelle
1
arbeitete auch für mich. sudo apt-get install ruby1.9.1-dev libsqlite3-dev
rajsite
2

Hier ist eine bessere Antwort von HEROKU - Git Push Heroku Master kann nicht ausgeführt werden

Da Sie sqlite3 nicht für Heroku verwenden können, fügen Sie dies Ihrem Gemfile hinzu:

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

Hatte das gleiche Problem und das Folgende hat bei mir funktioniert:

Kompilieren Sie sqlite3 als statische Bibliothek, installieren Sie es irgendwo in Ihrem Home-Verzeichnis und stellen Sie diese Option für den Gem-Installationsprozess bereit.

Gehen Sie zur Download-Seite und suchen Sie die Quelle. Die aktuellste Version ist derzeit http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz

tar -xf in der Datei oder tun Sie, was Sie normalerweise tun, um die Dekomprimierung aufzuheben. Verzeichnis eingeben

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

kompilieren, installieren und wenn Sie das Juwel installieren ...

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

EnotionZ
quelle
1

Von sqlite3-ruby gem kann sqlite3.h auf ubuntu nicht finden :

Sie müssen auch gcc selbst installieren, also wäre es insgesamt:

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

Anscheinend erhalten Sie einen falschen Fehler, der auf eine fehlende sqlite3.h hinweist, wenn das eigentliche Problem gcc selbst fehlt.

Jeroen Vijfhuizen
quelle
1

Die Lösung besteht darin --, configureParameter von gemParametern zu trennen .

anstatt

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

Versuchen Sie dies in einer Zeile und stellen Sie sicher, dass --nach dem letzten gemParameter und vor den configureParametern Folgendes angegeben wird:

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

Dies sollte Sie um diesen Fehler herum führen:

ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --without-sqlite3-include=/usr/include
stefanB
quelle
Dies war genau das, was ich brauchte - ein großes Dankeschön an diesen Einsender!
David Loy
0

Nicht --without-sqlite3-include=/usr/includeaber --with-sqlite3-include=/usr/include.

Daniel O'Hara
quelle
Wenn sqlite3.h wirklich fehlt und nicht in / usr / include, wie Sie sagten, können Sie es installieren mit: sudo apt-get install libsqlite3-dev
Kurt
Ich habe das schon getan. Es hilft nicht. Ich habe sqlite3 und libsqlite3-dev installiert.
Dmitry
0

Dies ist genau das gleiche Problem, das ich vor einigen Wochen hatte. Ich fand heraus, dass ich die neuesten Header / Bibliotheken von der SQLite-Download-Seite herunterladen musste. Probieren Sie es aus, hoffe das hilft!

theGrayFox
quelle
0

Für mich wurde das Problem gelöst, indem ich mkmf bekam, das in ruby1.8-dev ist.

sudo apt-get install ruby1.8-dev

Danke an mentalized für diesen einen.

ben Autor
quelle
0

Ich stimme Danya Vershinin & EnotionZ zu .

Wenn apt-get nicht verwendet werden kann:

  1. Kompilieren und installieren Sie sqlite3 aus Quellen, indem Sie Ihren eigenen "Präfix" -Pfad angeben. Weitere Informationen finden Sie in der README.
  2. Übergeben Sie diesen Pfad dann an das SQLite3-Ruby-Installationsprogramm (vergessen Sie nicht das "-").
LoganMzz
quelle
0

Sie haben die Version von RVM defekt. Ubuntu macht etwas mit RVM, das viele Fehler verursacht. Die einzig sichere Möglichkeit, dies zu beheben, ist: sudo apt-get --purge entfernen ruby-rvm sudo rm -rf / usr / share / ruby…, wenn es nicht hilft Starten Sie dann Ihren Computer neu. Installieren Sie RVM: \ curl -L https://get.rvm.io | bash -s stabil --ruby --autolibs = enable --auto-dotfiles Wenn Sie feststellen, dass Sie etwas Hand halten müssen, lesen Sie die Installation von Ruby unter Ubuntu 12.04, die etwas ausführlicher ist

Jack Demin
quelle
0

Vergiss alles und mach das,

Lauf

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

Das ist für Rhel, laufen Sie gleich für Ubuntu.

Aakash Parashar
quelle
0

Keine der oben genannten Lösungen hat bei mir funktioniert, auch nach der Installation von ruby2.5-devund libsqlite3-dev. Dann versuchte ich es mit PostgreSqlstatt sqlite. Das hat gut funktioniert. PostgreSqlVerwenden Sie diesen Befehl beim Erstellen eines railsProjekts, um anstelle von SQLite zu verwenden .

rails [_VERSION_] new project_name -d postgresql

Wenn Sie verwenden möchten, MySqlverwenden Sie mysqlanstelle von postgresql.

rails [_VERSION_] new project_name -d mysql

Sonst kannst du es auch ohne versuchen sqlite.

bundle install --without sqlite
MD. Khairul Basar
quelle
0

Ich habe gerade auf sqlite3-ruby '1.2.2' heruntergestuft.

nils petersohn
quelle