Не может загрузить такой файл - sqlite3/sqlite3_native (LoadError) на рубине на рельсах
Когда я пытаюсь установить базовую установку и запуск сервера с использованием Rails 4.0.0 на Ruby 2.0.0, я столкнулся со следующим сообщением об ошибке.
/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>'
Как я могу избежать этого сообщения об ошибке и продолжить?
Ответы
Ответ 1
Найдите свой файл sqlite3 gemspec. Одним из примеров является /usr/local/share/gem/specifications/sqlite3-1.3.7.gemspec
Окна:
C:\Ruby21\lib\ruby\gems\2.1.0\specifications
.
Вы должны настроить в соответствии с вашим пулом Rubygem и версией sqlite3.
Отредактируйте файл выше и найдите следующую строку
s.require_paths=["lib"]
измените его на
s.require_paths= ["lib/sqlite3_native"]
Ответ 2
см.: fooobar.com/questions/82951/...
к счастью, вам не нужно переключаться на ruby 2.0
есть решение этой проблемы, после бесконечных попыток...
https://github.com/hwding/sqlite3-ruby-win
меры
до
-
gem uninstall sqlite3 --all
Источник
строить
- запустить командную строку в извлеченном каталоге
- убедитесь, что ваш компилятор C установлен и добавлен в PATH
-
gem install bundler
-
bundle install
-
rake native gem
- вы найдете каталог с именем 'pkg', сгенерированный
устанавливать
- введите dir 'pkg'
-
gem install --local sqlite3-xxx.gem
("xxx" - это код версии)
Проверьте
Ответ 3
Поскольку pull-запрос № 229 был объединен, sqlite3 может быть установлен для каждого git:
key. С помощью этого дополнения в вашем Gemfile
можно легко использовать Gemfile
:
gem 'sqlite3', git: "https://github.com/sparklemotion/sqlite3-ruby"
Это работает на RubyInstaller-2.4 и новее. Он автоматически устанавливает требуемый пакет pacman mingw-w64-x86_64-sqlite3
при запуске bundler install
пакета.
В FAQ по RubyInstaller2 есть еще несколько советов по Rails для Windows.
Ответ 4
gem uninstall sqlite3 --all
ridk exec pacman -S mingw-w64-x86_64-sqlite3
gem inst sqlite3 --platform ruby
Это решило проблему для меня.
Windows 10
Ruby 2.5.3
Rails 5.2.2
Ответ 5
Просто отредактируйте Gemfile и добавьте gem 'sqlite3', platform: :ruby
.
Ответ 6
Никакая компиляция источников или загрузка предварительно скомпилированных библиотек не разрешит эту проблему, поверьте, я все испробовал, проблема лежит где-то в другом месте. Вот как это работает в окнах:
bundle update sqlite3
Вероятно, вы получите еще одну подобную ошибку после этого в отношении nokogiri, исправьте ее командой:
bundle update nokogiri
Наслаждайтесь своим Ruby App!
Ответ 7
Деинсталляция и переустановка камня sqlite3 работала для меня.
gem uninstall sqlite3
bundle
Ответ 8
ЛУЧШАЯ ОФИЦИАЛЬНАЯ УСТАНОВКА
Im, используя рельсы 5.2.1p57, Windows 10 Просто работая в следующих строках,
gem uninstall sqlite3
и удалите все установленные версии. снова выполнить следующую команду
gem install sqlite3 --platform=ruby
Теперь вы закончили. Дайте мне знать, если проблема не исчезнет.
Ответ 9
Это сработало для меня:
gem 'sqlite3', git: "https://github.com/larskanis/sqlite3-ruby", branch: "add-gemspec"
Ответ 10
Если верхний ответ не работает, исправление, которое я обнаружил, просто идет в ваш Gemfile и добавляет номер версии 1.3.11 (вместо 1.3.9) сразу после sqlite3. Итак, строка в вашем Gemfile должна теперь читать:
# Use sqlite3 as the database for Active Record
gem 'sqlite3', '1.3.11'
Ответ 11
У меня была такая же ошибка, когда я обновляю версию Ruby до 2.5.X. Я отслеживал с rails task --trace
что rails task --trace
недоступен для версии 2.5, но я изменил свой GemFile на "sqlite3", заменив "sqlite3-ruby", после того как я удалю камень "sqlite3" и, наконец, запустил bundle install
.
Я не знаю, в чем причина... Я читал, что "sqlite3" пока недоступен для ruby 2.5, но я не уверен.
Ответ 12
Чтобы избежать этой ошибки, убедитесь, что gem sqlite3
добавлен в ваш Gemfile. Затем извлеките "exe" и "dll" из ссылки загрузки Sqlite в папку Ruby bin. Если проблема по-прежнему сохраняется. Попробуй это:
bundle update
gem uninstall sqlite3
Учитывая выбор между несколькими версиями sqlite3, выберите последний вариант "Все версии". Введите последний номер здесь
Выберите gem для удаления:
1. sqlite3-1.3.13
2. sqlite3-1.3.13-x64-mingw32
3. Все версии
> 3
.
,
Если вы удалите этот камень, эти зависимости не будут выполнены.
Продолжить удаление? [YN]
> y
gem install sqlite3 --platform=ruby
rails s
Это должно сработать.
Прочтите эту ссылку, чтобы узнать больше, если выше работает для вас.
Ответ 13
Это случилось со мной. Оказалось, что я первоначально установил SQLite 1.3.10, но затем я скопировал некоторые драгоценные камни из проекта Rails tutorial screencasts, и он перечислил SQLite 1.3.9. Затем я получил ту же ошибку, что и вы. Я изменил его на 1.3.10, и он сработал.
(Это в Windows 7. Я запускал учебник по скринкасту по Cloud9 IDE).
Ответ 14
Это единственное решение для меня, полученное из этого сообщения о проблеме GitHub:
- Получите autoconf версию источников sqlite3 с https://www.sqlite.org/download.html.
- Запустите оболочку MSYS.
- В распакованном месте для вашего sqlite3 настройте статическую версию только, чтобы избежать хранения DLL на PATH:
./configure --disable-shared
. - Создайте и установите:
make install DESTDIR=/c/dev/ruby/tmp
. Вы можете изменить каталог. - Откройте командную строку Windows и запустите
gem uninstall sqlite3 --all
чтобы удалить все существующие камни sqlite3. - Снова в командной строке окна, постройте и установите sqlite3 gem:
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
. К ним относятся и каталоги lib могут быть разными, поэтому сначала проверьте.
Я использую Ruby версии 2.5.1 и Rails версии 5.2.0 в Windows 10.
Ответ 15
обновленный
Добавление ниже к исправленному для меня Gemfile: gem 'sqlite3', '1.4.0', platform:: ruby
Ответ 16
я нашел это! я видел это https://www.youtube.com/watch?v=lsrzvX0qzmA
я установил: версия Rails: 5.2.1 версия Ruby: 2.5.3 (x64-mingw32) версия 1.3q Sqlite
и у меня есть ваша проблема... мое решение:
- В вашей установочной папке, например, C:\Ruby25-x64\lib\ruby \ gems\2.5.0\gems\
у вас есть папки: "sqlite3-1.3.13" "sqlite3-1.3.13-x64-mingw32" - Найти файл
C:\Ruby25-x64\Lib\рубин\самоцветы\2.5.0\самоцветы\sqlite3-1.3.13\Lib\sqlite3\sqlite3_native.so - Скопируйте его в C:\Ruby25-x64\lib\ruby \ gems\2.5.0\gems\sqlite3-1.3.13-x64-mingw32\lib\sqlite3\2.5\sqlite3_native.so (возможно, папки не существуют - создайте и вставить)
Ответ 17
Я попытался перейти к файлу Gem в вашем проекте и поместить следующий код:
gem 'sqlite3', git: "https://github.com/larskanis/sqlite3-ruby", branch: "add-gemspec"
теперь в вашем терминале: комплектация
Я использую рельсы 5.2.2 и ruby версии 2.5.3
Ответ 18
Для пользователей OSX это может быть результатом использования менеджера ruby (например, rvm).
Если вы отредактируете свой ~/.bash_profile и добавите это:
[[ "$APP" = *"/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/"* ]] && {
echo Xcode detected
rvm use system
}
Вы можете обойти эту проблему. Перезапустите XCode, прежде чем пытаться построить снова.
Актуальная проблема отслеживается здесь: https://openradar.appspot.com/28726736).
Полный кредит идет по адресу: https://egeek.me/2018/04/14/ipa-export-error-in-xcode-and-ruby/