ไม่พบ sqlite3 ในรุ่น ruby ​​/ rails นี้โดยใช้ rvm


2

ฉันติดตั้ง rvm แล้วและใช้ 1.9.2 กับ rails 3.05 ฉันสามารถสร้างแอปพลิเคชันใหม่ แต่เมื่อฉันย้ายเข้าไปในไดเรกทอรีและพยายามเริ่มต้นเซิร์ฟเวอร์ ("ทางรถไฟ") ฉันได้รับข้อความแสดงข้อผิดพลาดนี้

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

ฉัน "มัดติดตั้ง" ตามคำแนะนำและมันก็มีบางอย่างแล้วก็ดูเหมือนจะพบปัญหาบางอย่างเพิ่มเติม ดูด้านล่าง หมายเหตุเมื่อฉันใช้ ruby ​​/ rails เริ่มต้นบน mac os ของฉันฉันสามารถเริ่มต้นเซิร์ฟเวอร์ได้ นี่เป็นเพียงปัญหาที่ฉันมีเมื่อฉันใช้รุ่นที่สร้างขึ้นใน rvm?

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

เมื่ออัญมณีรุ่นต่าง ๆ ถูกติดตั้งโดย bundler หรือโดยตรงจาก rubygems นอกจากนี้ยังมีสคริปต์ที่สามารถเรียกใช้งานได้ซึ่งติดตั้ง (เช่น rails, rake และ ironically, กำ ) การเรียกใช้สคริปต์เหล่านี้ในเวอร์ชันที่ถูกต้องในขณะที่คุณทำงานกับบันเดิลที่แตกต่างกันจะเป็นไปไม่ได้ดังนั้นโซลูชันที่บันเดิลมาด้วยก็คือคำนำหน้าคำสั่งของคุณด้วย bundle execซึ่งจะทำให้รันในบริบทของบันเดิลของคุณและเรียกใช้เวอร์ชันที่ถูกต้องจาก Gemfile ของคุณ:

bundle exec rails s

ตัวเลือกอื่นคือบอกให้ Bundler ติดตั้งสคริปต์เหล่านี้ในไดเรกทอรีเพื่อให้คุณสามารถเรียกได้จากที่นั่น:

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

ตัวเลือกที่ปลอดภัยกว่าที่ฉันคิดคือใช้ bundle execซึ่งคุณสามารถย่อให้สั้นลงได้โดยใช้นามแฝงของเชลล์เนื่องจากสามารถพิมพ์ได้ทุกครั้ง


ขวา. ฉันเพิ่งพบเจอเมื่อวานนี้ ดูเหมือนว่าการเปลี่ยนแปลงล่าสุดกับ Bundler และ Rails หรือไม่
slhck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.