Mit rvm kann sqlite3 in dieser Version von Ruby / Rails nicht gefunden werden

746
Michael

Ich habe rvm installiert und verwende 1.9.2 mit Schienen 3.05. Ich konnte eine neue Anwendung erstellen, aber sobald ich in das Verzeichnis gezogen bin und versucht habe, den Server zu starten ("Schienen"), erhielt ich diese Fehlermeldung

Could not find gem 'sqlite3 (>= 0)' in any of the gem sources listed in your Gemfile. Run `bundle install` to install missing gems. 

Ich habe "Bundle-Installation" gemäß der Anweisung durchgeführt, und es wurde ein wenig abgerufen und es schien dann, dass einige Probleme auftraten. Siehe unten. Hinweis: Wenn ich die Standard-Ruby / Rails auf meinem Mac OS verwende, kann ich den Server starten. Dies ist nur ein Problem, das ich habe, wenn ich eine in rvm erstellte Version verwende.

Fetching source index for http://rubygems.org/ Using rake (0.9.2)  Using abstract (1.0.0)  Using activesupport (3.0.5)  Using builder (2.1.2)  Using i18n (0.6.0)  Using activemodel (3.0.5)  Using erubis (2.6.6)  Using rack (1.2.4)  Using rack-mount (0.6.14)  Using rack-test (0.5.7)  Using tzinfo (0.3.29)  Using actionpack (3.0.5)  Using mime-types (1.16)  Using polyglot (0.3.2)  Using treetop (1.4.10)  Using mail (2.2.19)  Using actionmailer (3.0.5)  Using arel (2.0.10)  Using activerecord (3.0.5)  Using activeresource (3.0.5)  Using bundler (1.0.18)  Using thor (0.14.6)  Using railties (3.0.5)  Using rails (3.0.5)  /Users/michaeljohnmitchell/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_input.rb:122:in `initialize': no metadata found in /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/cache/sqlite3-1.3.4.gem (Gem::Package::FormatError) from /Users/michaeljohnmitchell/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_input.rb:20:in `new' from /Users/michaeljohnmitchell/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_input.rb:20:in `open' from /Users/michaeljohnmitchell/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/package.rb:44:in `open' from /Users/michaeljohnmitchell/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/format.rb:62:in `from_io' from /Users/michaeljohnmitchell/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/format.rb:46:in `block in from_file_by_path' from /Users/michaeljohnmitchell/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/open-uri.rb:35:in `open' from /Users/michaeljohnmitchell/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/open-uri.rb:35:in `open' from /Users/michaeljohnmitchell/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/format.rb:45:in `from_file_by_path' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/rubygems_integration.rb:100:in `spec_from_gem' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/source.rb:77:in `fetch' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/installer.rb:50:in `block in run' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/installer.rb:49:in `run' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/installer.rb:8:in `install' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/cli.rb:220:in `install' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/vendor/thor/task.rb:22:in `run' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/vendor/thor.rb:263:in `dispatch' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/lib/bundler/vendor/thor/base.rb:386:in `start' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.18/bin/bundle:13:in `<top (required)>' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/bin/bundle:19:in `load' from /Users/michaeljohnmitchell/.rvm/gems/ruby-1.9.2-p290/bin/bundle:19:in `<main>' Michael-Mitchells-MacBook-Pro:demo michaeljohnmitchell$ rails s 
2

1 Antwort auf die Frage

2
Andrew Vit

Wenn verschiedene Versionen von Gems von Bundler oder direkt von Rubygems installiert werden, gibt es auch ausführbare Skripts, die installiert werden (z. B. Rails, Rake und ironischerweise Bundle ). Die Ausführung der korrekten Versionen dieser Skripts während der Arbeit mit verschiedenen Bundles wäre nicht möglich. Daher hat der Bundler die Aufgabe, die Befehle mit einem Präfix zu versehen bundle exec, die dann im Kontext Ihres Bundles ausgeführt wird und die korrekte Version startet aus deinem Gemfile:

bundle exec rails s 

Die andere Option besteht darin, Bundler anzuweisen, diese Skripts in einem Verzeichnis zu installieren, damit Sie sie von dort aus aufrufen können:

bundle install --binstubs # same as: bundle install --binstubs=./bin 

Die sicherere Option, die ich denke, ist die Verwendung bundle exec, die Sie mit einem Shell-Alias ​​verkürzen können, da es jedes Mal störend beim Tippen werden kann.

Recht. Ich bin gestern erst gestritten. Scheint wie eine kürzliche Änderung bei Bundler und Rails? slhck vor 12 Jahren 0