5

これはおそらく初心者のセットアップの問題です。しかし、ここに行く...

機械のセットアップ

Rails 4.0.0 と ruby​​ 2.0.0 を実行している Windows 7 64 ビット マシンを使用しています。パスには次のものがあります。

C:\Ruby200-x64\bin;C:\RubyDevKit\bin;C:\RubyDevKit\mingw\bin;

プロジェクトのセットアップ

同僚の作業リポジトリから複製された git プロジェクトで作業しています。

イニシャルを実行すると

rake db:migrate

次のエラーが表示されます

rake aborted!
Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 's
qlite3'` to your Gemfile.
C:/Working/mynewproject/config/environment.rb:5:in `<top (required)>'
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

私のGemfileには、次のようにgem 'sqlite3'が含まれています

# Use sqlite3 as the database for Active Record
gem 'sqlite3' 

完全な Gemfile は

source 'https://rubygems.org'

ruby '2.0.0'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0'
gem 'rails_12factor', group: :production

# Use sqlite3 as the database for Active Record
gem 'sqlite3' 

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'

# Use Twitter Bootstrap for styling
gem 'bootstrap-sass'

# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'

# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'

group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end

# Use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

gem 'protected_attributes' # should probably use strong parameters!

実行するbundle installと、次のリストが表示されます-sqlite3がないことに注意してください

Using rake (10.1.0)
Using i18n (0.6.5)
Using minitest (4.7.5)
Using multi_json (1.7.9)
Using atomic (1.1.13)
Using thread_safe (0.1.2)
Using tzinfo (0.3.37)
Using activesupport (4.0.0)
Using builder (3.1.4)
Using erubis (2.7.0)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.0.0)
Using mime-types (1.25)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (4.0.0)
Using activemodel (4.0.0)
Using activerecord-deprecated_finders (1.0.3)
Using arel (4.0.0)
Using activerecord (4.0.0)
Using sass (3.2.10)
Using bootstrap-sass (2.3.2.2)
Using coffee-script-source (1.6.3)
Using execjs (2.0.1)
Using coffee-script (2.2.0)
Using thor (0.18.1)
Using railties (4.0.0)
Using coffee-rails (4.0.0)
Using hike (1.2.3)
Using jbuilder (1.5.1)
Using jquery-rails (3.0.4)
Using json (1.8.0)
Using protected_attributes (1.0.3)
Using bundler (1.3.5)
Using tilt (1.4.1)
Using sprockets (2.10.0)
Using sprockets-rails (2.0.0)
Using rails (4.0.0)
Using rails_serve_static_assets (0.0.1)
Using rails_stdout_logging (0.0.2)
Using rails_12factor (0.0.2)
Using rdoc (3.12.2)
Using sass-rails (4.0.0)
Using sdoc (0.3.20)
Using turbolinks (1.3.0)
Using uglifier (2.2.1)
Your bundle is complete!

私がするとき、私はbundle show 'sqlite3'得る

Could not find gem 'sqlite3'.
Did you mean sqlite3?

私がするとき、私はgem install 'sqlite3'得る

Successfully installed sqlite3-1.3.8-x64-mingw32
Parsing documentation for sqlite3-1.3.8-x64-mingw32
unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/sqlite3/2.0/sqlite3_native.so, skipping
1 gem installed

その「変換できません」というエラーについて調べてみたところ、ドキュメントなしでインストールできることがわかりました。だから、私がするなら

gem install 'sqlite3' --no-doc 

私は得る

Successfully installed sqlite3-1.3.8-x64-mingw32
1 gem installed

そして、私がするとき

rake db:migrate

私はまだ得る

rake aborted!
Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 's
qlite3'` to your Gemfile.
C:/Working/mynewproject/config/environment.rb:5:in `<top (required)>'
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

それで、私は何を逃したのですか?

ありがとう

コメントで提案されたことを実行した後に更新します。

Doonのコメントの結果として、上記の問題の説明に gemfile の内容を記載しました。

techvineetのコメントに応えてbundle install、一貫した出力で何度か実行しました。

zrl3dxのコメントの結果、実行bundle exec bundleして同じ出力を得ました。

Using rake (10.1.0)
Using i18n (0.6.5)
Using minitest (4.7.5)
Using multi_json (1.7.9)
Using atomic (1.1.13)
Using thread_safe (0.1.2)
Using tzinfo (0.3.37)
Using activesupport (4.0.0)
Using builder (3.1.4)
Using erubis (2.7.0)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.0.0)
Using mime-types (1.25)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (4.0.0)
Using activemodel (4.0.0)
Using activerecord-deprecated_finders (1.0.3)
Using arel (4.0.0)
Using activerecord (4.0.0)
Using sass (3.2.10)
Using bootstrap-sass (2.3.2.2)
Using coffee-script-source (1.6.3)
Using execjs (2.0.1)
Using coffee-script (2.2.0)
Using thor (0.18.1)
Using railties (4.0.0)
Using coffee-rails (4.0.0)
Using hike (1.2.3)
Using jbuilder (1.5.1)
Using jquery-rails (3.0.4)
Using json (1.8.0)
Using protected_attributes (1.0.3)
Using bundler (1.3.5)
Using tilt (1.4.1)
Using sprockets (2.10.0)
Using sprockets-rails (2.0.0)
Using rails (4.0.0)
Using rails_serve_static_assets (0.0.1)
Using rails_stdout_logging (0.0.2)
Using rails_12factor (0.0.2)
Using rdoc (3.12.2)
Using sass-rails (4.0.0)
Using sdoc (0.3.20)
Using turbolinks (1.3.0)
Using uglifier (2.2.1)
Your bundle is complete!

Sachin Singhのコメントの結果、Gemfile.lock を削除して実行しましbundle installた。結果はほとんど同じでした:

Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Using rake (10.1.0)
Using i18n (0.6.5)
Using minitest (4.7.5)
Using multi_json (1.7.9)
Using atomic (1.1.13)
Using thread_safe (0.1.2)
Using tzinfo (0.3.37)
Using activesupport (4.0.0)
Using builder (3.1.4)
Using erubis (2.7.0)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.0.0)
Using mime-types (1.25)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (4.0.0)
Using activemodel (4.0.0)
Using activerecord-deprecated_finders (1.0.3)
Using arel (4.0.0)
Using activerecord (4.0.0)
Using sass (3.2.10)
Using bootstrap-sass (2.3.2.2)
Using bundler (1.3.5)
Using coffee-script-source (1.6.3)
Using execjs (2.0.1)
Using coffee-script (2.2.0)
Using thor (0.18.1)
Using railties (4.0.0)
Using coffee-rails (4.0.0)
Using hike (1.2.3)
Using jbuilder (1.5.1)
Using jquery-rails (3.0.4)
Using json (1.8.0)
Using protected_attributes (1.0.3)
Using tilt (1.4.1)
Using sprockets (2.10.0)
Using sprockets-rails (2.0.0)
Using rails (4.0.0)
Using rails_serve_static_assets (0.0.1)
Using rails_stdout_logging (0.0.2)
Using rails_12factor (0.0.2)
Using rdoc (3.12.2)
Using sass-rails (4.0.0)
Using sdoc (0.3.20)
Using turbolinks (1.3.0)
Using uglifier (2.2.1)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

そのため、まだsqlite3について言及されておらず、rake db:migrate結果として

rake aborted!
Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 's
qlite3'` to your Gemfile.
C:/Working/its-a-disaster/config/environment.rb:5:in `<top (required)>'
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

Sachin Singhの質問に答えて、出力はruby -v command何ですか?

それは言います:

ruby 2.0.0p247 (2013-06-27) [x64-mingw32]

そしてレール --version は言う

Rails 4.0.0

Prusswanは、同じマシンに別の Ruby インストールがあるかどうか尋ねました。

1.9.2、1.9.3、および 2.0.0 の 3 つがありました。パスにあるのは後者です。他の2つは削除しました。

4

1 に答える 1

8

Bundler と 64 ビット Ruby にはx64-mingw32、バンドル内の gem プラットフォームが検出されず、失敗するという既知の問題があります。

これは 1.4.0 プレリリース バージョンで修正されていると思います。次のようにして試すことができます。

gem update bundler --pre

bundle install

64 ビット バージョンで発生する可能性がある他の問題があります。以下は、それに関する私の個人的な推奨事項です。

2GB を超える RAM を使用するアプリケーション (Rails アプリケーションではない可能性が高い) を実際に作業または作成する必要がある場合を除き、32 ビット バージョンの Ruby (およびそれぞれの DevKit) を使用することをお勧めします。

64 ビット バージョンの Windows を使用している場合でも、システムは 32 ビット アプリケーションを問題なく実行できます。Rails で Web アプリケーションを開発する際に目立つようなパフォーマンスの低下はありません。

Ruby 2.0.0 は安定しており、本番環境に対応しているとマークされていますが、すべての gem と関連ツールが更新されて適切に動作するわけではありません。Bundler と 64 ビット Ruby のケースでわかるように、解決する必要がある大まかなエッジがまだいくつかあります。ほとんどのオープンソース ソフトウェアと同様に、これはコミュニティの取り組みであり、支援が必要になる場合があります。

お役に立てれば。

于 2013-09-04T13:46:12.033 に答える