old « rubyのgem install dm-sqlite-adapterに失敗したときの対処 | メイン | Bootstrap4でoffsetが効かないときの対処法 » new

rubyのDataMapperで「cannot load such file -- do_sqlite3/2.2/do_sqlite3」ってなったときの対処法

2017年01月06日

Windows環境でDataMapper.setupでSQlite3を使おうとしたところ、エラーが発生したのでそのときの対処法をメモ。

■エラーが発生したソース

require 'dm-core'
require 'dm-migrations'

DataMapper.setup(:default, "sqlite3:#{DBファイルパス}")

以下略

■発生したエラー

LoadError: cannot load such file -- do_sqlite3/2.2/do_sqlite3
c:/ruby/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
c:/ruby/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
以下略

「do_sqlite3/2.2/do_sqlite3」ってファイルが見つからないよって言ってる。
「do_sqlite3」っていうgemをインストールしたけど効果無し。

■誤った対処法

ネットで調べてみると、海外のサイトで
「それは64ビット用Rubyでよくあることさ。64ビット用Rubyを削除して、32ビット用Rubyを入れたまえ。ははは」
みたいなコメントがあったので、信じてやってみたけど効果無し。
(そのせいで環境戻すのに手間取った)

■上手くいった対処法

「do_sqlite3」のgemにWindows用っぽいバージョンがあったので、それを入れてみる。

https://rubygems.org/gems/do_sqlite3/versions/0.10.17-x86-mswin32-60
(思いっきり「x86」って書いてあるけど気にしない)

上記サイトの右端の「Download」からgemファイルをダウンロード。
gemファイルを適当なところにおいて、以下のコマンドでインストール。

gem install --local do_sqlite3-0.10.17-x86-mswin32-60.gem

すると…

=============================================================================

You've installed the binary version of do_sqlite3.
It was built using Sqlite3 version 3071700.
It's recommended to use the exact same version to avoid potential issues.

At the time of building this gem, the necessary DLL files where available
in the following download:

http://www.sqlite.org/sqlite-dll-win32-x86-3071700.zip

You can put the sqlite3.dll available in this package in your Ruby bin
directory, for example C:\Ruby\bin

=============================================================================

Successfully installed do_sqlite3-0.10.17-x86-mswin32-60
Parsing documentation for do_sqlite3-0.10.17-x86-mswin32-60
Installing ri documentation for do_sqlite3-0.10.17-x86-mswin32-60
Done installing documentation for do_sqlite3 after 0 seconds
1 gem installed

なんか、「sqliteのdllが必要だから、上記のURLから落としてきて、RubyのBinディレクトリに入れてね!」って言ってる。

というわけで、以下のサイトからそれっぽいファイル「sqlite-dll-win64-x64-3160100.zip」を落として来て、「c:\ruby\bin」に「sqlite3.dll」を入れた。
http://www.sqlite.org/download.html

これで、上手く行かなかったプログラムをもう一回動かすと、成功。
めでたしめでたし。


old « rubyのgem install dm-sqlite-adapterに失敗したときの対処 | メイン | Bootstrap4でoffsetが効かないときの対処法 » new

トラックバックURL

このエントリーのトラックバックURL:
https://blog.hp-improve.com/mt/mt-tb.cgi/1548

コメントする