Kiedy próbuję skonfigurować podstawową instalację i inicjację serwera przy użyciu Rails 4.0.0 na Ruby 2.0.0, pojawia się następujący komunikat o błędzie.
/usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `require': cannot load such file -- sqlite3/sqlite3_native (LoadError)
from /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:6:in `rescue in <top (required)>'
from /usr/local/lib/ruby/gems/2.0.0/gems/sqlite3-1.3.7/lib/sqlite3.rb:2:in `<top (required)>'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
from /home/penchal/new/site/config/application.rb:7:in `<top (required)>'
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:76:in `require'
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:76:in `block in <top (required)>'
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap'
from /usr/local/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
Jak mogę uniknąć tego komunikatu o błędzie i przejść dalej?
ruby-on-rails
sqlite
Penchala Reddy Audireddy
źródło
źródło
Odpowiedzi:
Znajdź swój plik sqlite3 gemspec. Jednym z przykładów jest
/usr/local/share/gem/specifications/sqlite3-1.3.7.gemspec
Okna
C:\Ruby21\lib\ruby\gems\2.1.0\specifications
.Powinieneś dostosować zgodnie ze ścieżką Rubygem i wersją sqlite3. Edytuj plik powyżej i poszukaj następującego wiersza
zmień to na
źródło
zobacz :https://stackoverflow.com/a/39136421/6755206
na szczęście nie musisz przechodzić na ruby 2.0,
istnieje rozwiązanie tego problemu, po niekończących się próbach ...
https://github.com/hwding/sqlite3-ruby-win
Kroki
Przed
gem uninstall sqlite3 --all
Źródło
Budować
gem install bundler
bundle install
rake native gem
zainstalować
gem install --local sqlite3-xxx.gem
(„xxx” to kod wersji)Czek
irb
require 'sqlite3'
źródło
pkg
.you'll find a dir named 'pkg' generated
nigdzie nie widziałem takiego katalogu. Poniższe rozwiązanie @Edson Momm działało dla mnie.Ponieważ żądanie ściągnięcia # 229 zostało scalone, sqlite3 można zainstalować dla każdego
git:
klucza. Dzięki temu dodatkowi można łatwo używać sqlite3 wGemfile
:Działa to na RubyInstaller-2.4 i nowszych. Po
mingw-w64-x86_64-sqlite3
uruchomieniu automatycznie instaluje wymagany pakiet pacmanbundler install
.Więcej wskazówek dotyczących Rails w systemie Windows można znaleźć w FAQ RubyInstaller2 .
źródło
gem uninstall sqlite3 --all ridk exec pacman -S mingw-w64-x86_64-sqlite3 gem inst sqlite3 --platform ruby
To rozwiązało problem.
źródło
bundle install
zainstalować nowy klejnot, ponownie napotkałbym ten problem i musiałbym powtórzyć powyższe kroki.Po prostu edytuj Gemfile i dodaj
gem 'sqlite3', platform: :ruby
.źródło
Żadna kompilacja źródeł ani pobieranie wstępnie skompilowanych bibliotek nie rozwiąże tego problemu, uwierz mi, próbowałem wszystkiego, problem leży gdzie indziej. Tak to działa w systemie Windows:
bundle update sqlite3
Prawdopodobnie otrzymasz kolejny podobny błąd po tym dotyczącym nokogiri, napraw go za pomocą polecenia:
bundle update nokogiri
Ciesz się aplikacją Ruby!
źródło
Odinstalowanie i ponowne zainstalowanie klejnotu sqlite3 działało dla mnie.
gem uninstall sqlite3 bundle
źródło
To zadziałało dla mnie:
źródło
NAJLEPSZA OFICJALNA INSTALACJA
Używam rails 5.2.1p57, Windows 10 Uruchomienie następujących linii rozwiązało problem
gem uninstall sqlite3
i odinstaluj wszystkie zainstalowane wersje. ponownie wykonaj następujące polecenie
gem install sqlite3 --platform=ruby
Gotowe. Daj mi znać, jeśli problem będzie się powtarzał.
źródło
Jeśli górna odpowiedź nie działa, znaleziona przeze mnie poprawka polega po prostu na przejściu do pliku Gemfile i dodaniu numeru wersji 1.3.11 (zamiast 1.3.9) zaraz po sqlite3. Zatem wiersz w twoim Gemfile powinien teraz brzmieć:
# Use sqlite3 as the database for Active Record gem 'sqlite3', '1.3.11'
źródło
Miałem ten sam błąd, kiedy uaktualniłem moją wersję Ruby do 2.5.X. Śledziłem z
rails task --trace
że sqlite3 nie jest dostępna dla wersji 2.5, niż mogę zmienić GemFile gem „sqlite3” zmieni się na „sqlite3-ruby”, po tym, jak odinstalować gem „sqlite3” i wreszcie uruchomićbundle install
.Nie wiem, jaki jest tego powód ... Czytałem, że "sqlite3" nie jest jeszcze dostępne dla Ruby 2.5, ale nie jestem pewien.
źródło
Aby uniknąć tego błędu, upewnij się, że
gem sqlite3
został on dodany do pliku Gemfile. Następnie wypakuj pliki „exe” i „dll” z łącza pobierania Sqlite do folderu bin Rubiego. Jeśli problem nadal występuje. Spróbuj tego:bundle update
gem uninstall sqlite3
Mając do wyboru wiele wersji sqlite3, wybierz ostatnią opcję „Wszystkie wersje”. Wpisz tutaj ostatni numer
gem install sqlite3 --platform=ruby
rails s
To powinno działać.
Przeczytaj ten link, aby uzyskać więcej wyjaśnień, jeśli powyższe działa dla Ciebie.
źródło
Mnie też się to przydarzyło. Okazało się, że pierwotnie zainstalowałem SQLite 1.3.10, ale potem skopiowałem kilka perełek z projektu screencastów tutoriala Rails i wyświetlił SQLite 1.3.9. Wtedy dostałem ten sam błąd co ty. Zmieniłem go z powrotem na 1.3.10 i zadziałało.
(To jest w systemie Windows 7. Uruchomiłem samouczek screencast na Cloud9 IDE).
źródło
To jedyne rozwiązanie, które zadziałało dla mnie, pochodzące z tego posta na GitHub :
./configure --disable-shared
.make install DESTDIR=/c/dev/ruby/tmp
. Możesz zmienić katalog.gem uninstall sqlite3 --all
aby usunąć wszystkie istniejące klejnoty sqlite3.gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:\dev\ruby\tmp\usr\local\include --with-sqlite3-lib=C:\dev\ruby\tmp\usr\local\lib
. Te katalogi include i lib mogą się różnić, więc najpierw sprawdź.Używam Ruby w wersji 2.5.1 i Rails w wersji 5.2.0 na Windows 10.
źródło
znalazłem to! widziałem to https://www.youtube.com/watch?v=lsrzvX0qzmA
Zainstalowałem: Wersja Railsów: 5.2.1 Wersja Ruby: 2.5.3 (x64-mingw32) Wersja Sqlite 1.3.13
i mam twój problem. . moje rozwiązanie:
znajdują się foldery: "sqlite3-1.3.13" "sqlite3-1.3.13-x64-mingw32"
C: \ Ruby25-x64 \ lib \ ruby \ gems \ 2.5.0 \ gems \ sqlite3-1.3.13 \ lib \ sqlite3 \ sqlite3_native.so
źródło
Zaktualizowano
Dodanie poniższego do poprawionego dla mnie pliku Gemfile: gem 'sqlite3', '1.4.0', platformy:: ruby
źródło
Zmień swój klejnot sqlite3 w Gemfile na to:
Następnie uruchomić:
bundle install
źródło
W przypadku użytkowników OSX może to wynikać z użycia menedżera ruby (np. Rvm).
Jeśli edytujesz swój ~ / .bash_profile i dodasz to:
[[ "$APP" = *"/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"* ]] && { echo Xcode detected rvm use system }
Możesz obejść ten problem. Uruchom ponownie Xcode przed ponowną próbą kompilacji.
Aktualny problem można śledzić tutaj: https://openradar.appspot.com/28726736 ).
Pełne uznanie trafia do: https://egeek.me/2018/04/14/ipa-export-error-in-xcode-and-ruby/
źródło