web-dev-qa-db-ja.com

そのようなファイルをロードできません-Ruby on railsにsqlite3 / sqlite3_native(LoadError)

Rails 2.0.0でRuby 4.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>'

このエラーメッセージを回避して、さらに先に進むにはどうすればよいですか?

Sqlite3 gemspecファイルを見つけます。 1つの例は/usr/local/share/gem/specifications/sqlite3-1.3.7.gemspecです

Windows:C:\Ruby21\lib\Ruby\gems\2.1.0\specifications

Rubygemパスとsqlite3バージョンに応じて調整する必要があります。上記のファイルを編集して、次の行を探します

s.require_paths=["lib"]

に変更する

s.require_paths= ["lib/sqlite3_native"]
119

参照: https://stackoverflow.com/a/39136421/6755206

幸いなことに、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'
19
hwding

プルリクエスト#229 がマージされているため、git:キーごとにsqlite3をインストールできます。 Gemfileにこのオプションを追加することにより、sqlite3を簡単に使用できます。

gem 'sqlite3', git: "https://github.com/sparklemotion/sqlite3-Ruby"

これはRubyInstaller-2.4以降で機能します。 mingw-w64-x86_64-sqlite3を実行すると、必要なpacmanパッケージbundler installが自動的にインストールされます。

RubyInstaller2 FAQ には、WindowsのRailsに関するヒントがいくつかあります。

17
Lars Kanis
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
13
Edson Momm

Gemfileを編集してgem 'sqlite3', platform: :Rubyを追加するだけです。

9
Ram

ソースのコンパイルやプリコンパイルされたライブラリのダウンロードは、この問題を解決するものではありません。これはWindowsでの動作です:

bundle update sqlite3

この後、nokogiriに関する別の同様のエラーが表示される可能性が高いため、コマンドで修正します。

bundle update nokogiri

Rubyアプリをお楽しみください!

5
Norman Seßler

BEST OFFICIAL INSTALL

Rails 5.2.1p57を使用しているWindows 10

gem uninstall sqlite3

インストールされているすべてのバージョンをアンインストールします。次のコマンドを再度実行します

gem install sqlite3 --platform=Ruby

これで完了です。問題が解決しない場合はお知らせください。

4
Pradeep Sapkota

Sqlite3 gemをアンインストールして再インストールするとうまくいきました。

gem uninstall sqlite3

bundle
4

これは私のために働いた:

gem 'sqlite3', git: "https://github.com/larskanis/sqlite3-Ruby", branch: "add-gemspec"
4
Bolan Oluwa

このエラーを回避するには、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

このgemを削除すると、これらの依存関係は満たされません。
アンインストールを続行しますか? [yN]
> y

gem install sqlite3 --platform=Ruby

Rails s

これは動作するはずです。

上記をお読みください。詳細については、こちらをお読みください link .

2
Saurabh Borse

一番上の答えが機能しない場合、私が発見した修正は、単にGemfileに行き、sqlite3の直後にバージョン番号1.3.11(1.3.9ではなく)を追加することです。したがって、Gemfileの行は次のようになります。

# Use sqlite3 as the database for Active Record
gem 'sqlite3',  '1.3.11'
2
Andrew Britton

Rubyバージョンを2.5.Xにアップグレードすると、同じエラーが発生しました。私はRails task --traceで追跡し、バージョン2.5でsqlite3が利用できないことを確認しました。gemの "sqlite3"を "sqlite3-Ruby"に変更し、gem "sqlite3"をアンインストールし、最後にbundle install

理由はわかりません... Ruby 2.5では "sqlite3"がまだ利用できないと読んでいますが、よくわかりません。

2
Adrian Higuita

これは私にも起こりました。もともとSQLite 1.3.10をインストールしていたことが判明しましたが、Railsチュートリアルスクリーンキャストプロジェクトからいくつかのgemをコピーし、SQLite 1.3.9をリストしました。それからあなたと同じエラーが出ました。私はそれを1.3.10に戻し、それが機能した。

(これはWindows 7上にあります。Cloud9IDEでスクリーンキャストチュートリアルを実行していました)。

1
Paul Macias

これは、 このGitHubの問題の投稿 から派生した、私のために働いた唯一のソリューションです。

  1. https://www.sqlite.org/download.html からsqlite3ソースのautoconfバージョンを取得します。
  2. MSYS Shellを起動します。
  3. Sqlite3の解凍された場所で、PATHにDLLが残らないように静的バージョンのみを構成します:./configure --disable-shared
  4. ビルドしてインストールします:make install DESTDIR=/c/dev/Ruby/tmp。ディレクトリを変更できます。
  5. ウィンドウのコマンドプロンプトを開き、gem uninstall sqlite3 --allを実行して、既存のsqlite3 gemをすべて削除します。
  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。 includeディレクトリとlibディレクトリは異なる場合があるため、最初に確認してください。

Windows 10でRubyバージョン2.5.1およびRailsバージョン5.2.0を使用しています。

1
ismailarilik

更新済み

私のために修正されたGemfileに以下を追加:gem 'sqlite3'、 '1.4.0'、platforms::Ruby

1
Ryan

見つけた!私はこれを見ました https://www.youtube.com/watch?v=lsrzvX0qzmA
iがインストールされました:Railsバージョン:5.2.1 Rubyバージョン:2.5.3(x64-mingw32)Sqliteバージョン1.3.13
そしてあなたの問題があります...私の解決策:

  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\Ruby\gems\2.5.0\gems\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にコピーします(フォルダーが存在しない場合があります-作成してペースト)
0
Roman Dergunov

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/

0
Julian K

このためにGemfileでsqlite3 gemを変更します。

gem 'sqlite3', git: "https://github.com/larskanis/sqlite3-Ruby", branch: "add-gemspec"

次に実行します:

bundle install
0