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


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

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.



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.




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.


1
też dla mnie pracował. sudo apt-get install ruby1.9.1-dev libsqlite3-dev
rajsite


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



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

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.


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!


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.


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 „-”).

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ń


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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.