Не может загрузить такой файл - 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" - это код версии)

Проверьте

  • irb
  • require 'sqlite3'

Ответ 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:

  1. Получите autoconf версию источников sqlite3 с https://www.sqlite.org/download.html.
  2. Запустите оболочку MSYS.
  3. В распакованном месте для вашего sqlite3 настройте статическую версию только, чтобы избежать хранения DLL на PATH: ./configure --disable-shared.
  4. Создайте и установите: make install DESTDIR=/c/dev/ruby/tmp. Вы можете изменить каталог.
  5. Откройте командную строку Windows и запустите gem uninstall sqlite3 --all чтобы удалить все существующие камни sqlite3.
  6. Снова в командной строке окна, постройте и установите 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
и у меня есть ваша проблема... мое решение:

  1. В вашей установочной папке, например, C:\Ruby25-x64\lib\ruby \ gems\2.5.0\gems\
    у вас есть папки: "sqlite3-1.3.13" "sqlite3-1.3.13-x64-mingw32"
  2. Найти файл
    C:\Ruby25-x64\Lib\рубин\самоцветы\2.5.0\самоцветы\sqlite3-1.3.13\Lib\sqlite3\sqlite3_native.so
  3. Скопируйте его в 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/