błąd instalacji sqlite3-ruby na Ubuntu

257

Mam następujący błąd podczas instalacji sqlite3-ruby:

Budowanie rozszerzeń natywnych. To może chwilę potrwać ...
BŁĄD: Błąd instalacji sqlite3-ruby:
    BŁĄD: nie udało się zbudować natywnego rozszerzenia gem.

/usr/bin/ruby1.8 extconf.rb
sprawdzanie sqlite3.h ... nie
Brak pliku sqlite3.h. Wypróbuj „port install sqlite3 + universal” lub „yum install sqlite3-devel”
*** extconf.rb nie powiodło się ***
Nie można utworzyć pliku Makefile z jakiegoś powodu, prawdopodobnie braku
niezbędne biblioteki i / lub nagłówki. Sprawdź plik mkmf.log, aby uzyskać więcej
Detale. Możesz potrzebować opcji konfiguracji.

Dostarczone opcje konfiguracji:
    - z opcją-reż
    - bez-opt-reż
    - z opcją opt-include
    --without-opt-include = $ {opt-katalog} / include
    --with-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --with-make-prog
    --with-make-prog
    --srcdir =.
    - curdir
    --ruby = / usr / bin / ruby1.8
    --with-sqlite3-reż
    - bez-sqlite3-reż
    --with-sqlite3-include
    --without-sqlite3-include = $ {sqlite3-dir} / include
    --with-sqlite3-lib
    --without-sqlite3-lib = $ {sqlite3-dir} / lib


Pliki Gem pozostaną zainstalowane w /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1 do kontroli.
Wyniki są rejestrowane w /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out

sqlite3.h znajduje się w / usr / include /

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

nie działa

BŁĄD: Podczas wykonywania gem ... (OptionParser :: InvalidOption)
    niepoprawna opcja: --without-sqlite3-include = / usr / include

Ubuntu 10.04

Dmitry
źródło
ten sam problem - nie ma na nie odpowiedzi. sqlite3.h nie istnieje i wszystkie powyższe pakiety są zainstalowane. ubunut 10.10
RRT
Spróbuj sudo apt-get install build-essential, a następnie sudo gem install sqlite3-ruby
Dmitry
1
od tego czasu zmieniło się na just sqlite3, notsqlite3-ruby
kelloti,
3
Pracowałem dla mnie na Ubuntu 12.04, jak sugerował Marshluca. sudo apt-get install libsqlite3-dev
panta

Odpowiedzi:

585

Potrzebujesz nagłówków programistycznych SQLite3, aby natywne rozszerzenie gem mogło się z nim kompilować. Możesz je zainstalować, uruchamiając (ewentualnie z sudo):

apt-get install libsqlite3-dev
marshluca
źródło
26
Musiałem sudo apt-get install libsqlite3-dev. Dzięki.
B, 7
6
Działa jak urok. Dzięki.
frank.m
Dzięki - to zdecydowanie nie byłoby oczywiste.
james_womack
15

Potrzebujesz tylko --tam.

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

Oznacza to, że opcja nie polega na bezpośrednim klejnotu, ale na konkretnym klejnocie.

Kurt
źródło
8

W moim przypadku nie mam zainstalowanych podstawowych kompilatorów, więc

sudo apt-get install build-essential

rozwiązał mój problem, ale dla większości osób myślę, że https://stackoverflow.com/a/3649005/417267 jest rozwiązaniem.

Dmitry
źródło
1
To był mój problem. Dzięki.
j smutny
6

Jeśli działasz w Ubuntu i używasz RVM dla ruby ​​na szynach, dodaj PIERWSZE:

sudo apt-get install libxslt-dev libxml2-dev

LUB Możesz sprawdzić za pomocą tych poleceń:

To polecenie przygotuje dla ciebie dwa pakiety: sqllite3 i libsqlite3-dev

sudo apt-get install sqlite3 libsqlite3-dev

- Teraz zainstaluj klejnot sqlite

 [sudo] gem install sqlite3-ruby

-używanie Ubuntu nie wymaga sudo.

Powodzenia! Uwaga: używam Ubuntu 10.10 i działa.

anguu
źródło
6

To wystarczyło, aby działało

sudo apt-get install libsqlite3-dev

Dzięki marshluca

Bernard Banta
źródło
4

Próbowałem WSZYSTKICH innych rozwiązań, żadne nie pomogło.

Okazało się, że potrzebujesz również pakietu deweloperskiego dla samego rubinu. Dla mnie to pomogło

sudo apt-get install ruby-full

Ma jednak wiele nieprzyjemnych zależności (jak emacs, wtf?), Tylko

sudo apt-get install ruby1.8-dev

powinno być dobrze. Po zainstalowaniu (i masz zainstalowane pakiety sqlite i sqlite-dev)

sudo gem install sqlite3-ruby

działa jak marzenie.

mhaligowski
źródło
1
też dla mnie pracował. sudo apt-get install ruby1.9.1-dev libsqlite3-dev
rajsite
2

Oto lepsza odpowiedź od HEROKU - nie można uruchomić git push heroku master

Ponieważ nie możesz używać sqlite3 na heroku, dodaj to do swojego Gemfile:

group :production do
  gem 'pg'
end
group :development, :test do
  gem 'sqlite3'
end
jstreebin
źródło
1

Czy ten sam problem i następujące działały dla mnie:

skompiluj sqlite3 jako bibliotekę statyczną, zainstaluj gdzieś w swoim katalogu domowym, a następnie podaj tę opcję dla procesu instalacji gem.

Przejdź do strony pobierania i pobierz źródło. Najnowsza wersja w tej chwili to http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz

tar -xf na pliku lub rób wszystko, co zwykle robisz, aby rozpakować; wejść do katalogu

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

skompiluj, zainstaluj, a kiedy instalujesz klejnot ...

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

EnotionZ
źródło
1

Z sqlite3-ruby gem nie może znaleźć sqlite3.h na Ubuntu :

Musisz także zainstalować samą gcc, więc w sumie będzie to:

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

Najwyraźniej pojawia się błędny błąd wskazujący brakujący plik sqlite3.h, gdy w rzeczywistym problemie brakuje samego gcc.

Jeroen Vijfhuizen
źródło
1

Rozwiązaniem jest dodanie --oddzielnych configureparametrów od gemparametrów.

zamiast

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

spróbuj tego, wszystko w jednym wierszu, pamiętaj o dołączeniu --po ostatnim gemparametrze i przed configureparametrami:

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

Powinno to obejść ten błąd:

ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --without-sqlite3-include=/usr/include
stefanB
źródło
Właśnie tego potrzebowałem - wielkie dzięki temu autorowi!
David Loy,
0

Nie --without-sqlite3-include=/usr/include, ale --with-sqlite3-include=/usr/include.

Daniel O'Hara
źródło
Jeśli sqlite3.h naprawdę brakuje i nie znajduje się w / usr / include, jak powiedziałeś, możesz go zainstalować za pomocą: sudo apt-get install libsqlite3-dev
Kurt
Już to zrobiłem .. To nie pomaga. Mam zainstalowane sqlite3 i libsqlite3-dev.
Dmitry
0

To jest dokładnie ten sam problem, który miałem kilka tygodni temu. Dowiedziałem się, że muszę pobrać najnowsze nagłówki / biblioteki ze strony pobierania SQLite. Wypróbuj, mam nadzieję, że to pomoże!

theGrayFox
źródło
0

Dla mnie problem został rozwiązany przez pobranie mkmf, który znajduje się w ruby1.8-dev.

sudo apt-get install ruby1.8-dev

Dzięki za mentalizowane dla tego.

ben autor
źródło
0

Zgadzam się z Danya Vershinin i EnotionZ .

Jeśli nie możesz użyć apt-get:

  1. skompiluj i zainstaluj sqlite3 ze źródeł, podając własną ścieżkę „przedrostka”. Więcej informacji można znaleźć w pliku README.
  2. Następnie przekazał tę ścieżkę do instalatora sqlite3-ruby (nie zapomnij o „-”).
LoganMzz
źródło
0

Masz zepsutą wersję RVM. Ubuntu robi coś z RVM, które powoduje wiele błędów, jedynym bezpiecznym sposobem na naprawę jest: sudo apt-get - purge usuń ruby-rvm sudo rm -rf / usr / share / ruby…, jeśli to nie pomoże następnie uruchom ponownie komputer. zainstaluj RVM: \ curl -L https://get.rvm.io | bash -s stable --ruby --autolibs = enable --auto-dotfiles Jeśli uznasz, że potrzebujesz trzymania się za ręce, spójrz na Instalowanie Ruby na Ubuntu 12.04, co daje nieco więcej wyjaśnień

Jack Demin
źródło
0

Zapomnij o wszystkim i zrób to,

biegać

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

To dla Rhel, uruchom to samo dla Ubuntu.

Aakash Parashar
źródło
0

Żadne z wyżej wymienionych rozwiązań nie działało dla mnie, nawet po zainstalowaniu ruby2.5-devi libsqlite3-dev. Następnie spróbowałem użyć PostgreSqlzamiast sqlite. To działało dobrze. Aby użyć PostgreSqlzamiast sqlite, użyj tego polecenia podczas tworzenia railsprojektu.

rails [_VERSION_] new project_name -d postgresql

Jeśli chcesz użyć, MySqlużyj mysqlzamiast postgresql.

rails [_VERSION_] new project_name -d mysql

W przeciwnym razie możesz spróbować bez sqlite.

bundle install --without sqlite
MD Khairul Basar
źródło
0

Właśnie obniżyłem wersję do sqlite3-ruby „1.2.2”

Nils Petersohn
źródło