40

Ruby/Rails を初めて使用するので、今週末に自分で問題を解決しようとした後、ここでアドバイスを求めようとしています。

私は完全な Ruby/Apache/Passenger セットアップを FreeBSD で行っており、Ruby 開発環境として Windows を使用するタスクを達成しようとしています。

ここのところ:

  • Ruby をインストール、v2.0.0p0 (2013-02-24) [x64-ming32]
  • Rails がインストールされている、v.3.2.12
  • Ruby 開発キットをインストールして登録しました。
  • sqlite3 dll/exe を Ruby の "bin" フォルダーにコピーしました (これは、"Ruby でコマンド プロンプトを開始" コンソールを使用して私のパスにもあります)。
  • Rails サーバーを正常に起動でき、 http: //guides.rubyonrails.org/getting_started.htmlチュートリアルを 3.3 に進めます。
  • ">rake db:create" は教えてくれます:

    sqlite3 アダプターをインストールしてください: gem install activerecord-sqlite3-adapter(sqlite3 はバンドルの一部ではありません。Gemfile に追加してください。)

私には「理解」がありません。activerecord-sqlite3-adapter をインストールしようとすると、「有効な宝石が見つかりませんでした...」というメッセージが表示されます。

  • ">gem install sqlite3" は以下を返します:

    Building native extensions. This could take a while... ERROR: Error installing sqlite3: ERROR: Failed to build gem native extension.

    D:/Development/Ruby200-x64/bin/ruby.exe extconf.rb checking for sqlite3.h... *** extconf.rb failed ***

現在、Ruby on Windows のインストールがどのような状態にあるのかもわからないところに行き詰まっています。メインの Rails チュートリアルに従おうとしていますが、これらの問題は何も指定されていません (おそらく Ruby が原因である可能性があります)。 Windows では、多くの人にとって自然な苦痛のようです)。

何が足りないの?!? Ruby on Windows 用に sqlite3 をインストールしようとしているところですが、簡単そうですよね?

実行すると">rais db"、SQLite シェルが表示されます。

SQLite version 3.7.15.2 2013-01-09 11:53:05

私の問題を解決しない手順に関する同様の質問: Windows 7 で SQLite 3.6 をインストールする

4

9 に答える 9

79

質問には回答がありましたが、自分の研究を投稿して他の人を助けたいと思っています。オンラインで多くの情報を見つけましたが、Ruby の初心者である私はすべてを理解するのに苦労しました。基本的な答えは、次の投稿https://github.com/luislavena/sqlite3-ruby/issues/82から得られます。「paulwis」による ruby​​ 2.0.0-p0 用の sqlite3 の適切なインストール方法とhttpsに関するいくつかのコメントが含まれています。 //github.com/rails/rails/issues/10150 . だからここにあります:

  1. セットアップ用の Ruby Devkit をインストールします (私は x64 マシンを使用しているため、DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe)。
  2. Sqlite.org から autoconf パッケージをダウンロードして抽出します。
  3. msys.bat を実行します (これは ruby​​ devkit ルート フォルダー内にあります)。
  4. cd で sqlite ソースをダウンロードしたパスに移動します (例: MSYS/MINGW32 を初めて使用する場合は、パス "c:\dev\sqlite3" の場合は "cd /c/dev/sqlite3")。
  5. 「./configure」を実行します
  6. 「メイク」を実行
  7. 「make install」を実行
  8. 今回は、プラットフォームと新しくコンパイルされたバイナリへのパスを指定して、sqlite3 gem を再度取得します。

    gem install sqlite3 --platform=ruby -- --with-sqlite3-include=[path\to\sqlite3.h] --with-sqlite3-lib=[path\to\sqlite3.o]
    

    例えば:

    gem install sqlite3 --platform=ruby -- --with-sqlite3-include=/c:/dev/sqlite3/ --with-sqlite3-lib=/c:/dev/sqlite3/.libs/
    

    (手順 4 で指定したパスから)

  9. Rails アプリの Gemfile.lock をチェックして、正しい sqlite3 バージョンを指していることを確認してください。私のは「sqlite3(1.3.7-x86-mingw32)」で、手動で「sqlite3(1.3.7-x64-mingw32)」に変更しました。プラットフォームの削除も機能します:「sqlite3(1.3.7)」。

これが誰かに役立つことを願っています。

于 2013-04-15T19:14:35.740 に答える
11

これは古いスレッドですが、まだ関連しています。

私たちにとっては、 を編集しGemfileて sqlite の特定のバージョンを追加するだけで簡単でした。

gem 'sqlite3', '~> 1.3.13'
于 2019-05-10T17:05:12.957 に答える
2
#!/usr/bin/env sh

mkdir c:/sqlite3x86
wget -P c:/sqlite3x86 http://packages.openknapsack.org/sqlite/sqlite-3.7.15.2-x86-windows.tar.lzma
cd c:/sqlite3x86
bsdtar --lzma -xf c:/sqlite3x86/sqlite-3.7.15.2-x86-windows.tar.lzma
gem install sqlite3 --platform=ruby -- --with-opt-dir=c:/sqlite3x86
cd c:/
rm -rf c:/sqlite3x86
于 2013-08-09T00:25:09.533 に答える
0

後世のために、コメントから答えを入れようと思いました。問題は、SQLite3 と「まだ」互換性がない新しいバージョンの Ruby/Rails (Windows 用) を手に入れたことにあるようです。

1.9.x にダウングレードして、実行できるようになりました。

于 2013-03-21T17:54:23.620 に答える