2012-03-13 37 views
16

Sử dụng ubuntu 10.04, rvm. Lúc đầu, tôi đã cài đặt ruby ​​1.9.2 với rvm, đường ray đá quý và tạo ra một số dự án mới và bắt đầu thành công. Mọi thứ đều hoạt động tốt. Nhưng sau khi chuyển sang một dự án khác, thực hiện bó lệnh (đầu ra vẻ OK) cài đặt và bắt đầu đường ray máy chủ - lỗi xảy ra:không thể tìm thấy đường ray đá quý - Gem :: GemNotFoundException

ray s

/home/jacek/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/site_ruby/1.9.1/rubygems.rb:316:in `bin_path': can't find gem rails ([">= 0"]) with executable rails (Gem::GemNotFoundException) 
from /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin/rails:19:in `<main>' 

danh sách đá quý ray

*** LOCAL GEMS *** 
rails (3.2.2) 

đá quý env

RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.18 
    - RUBY VERSION: 1.9.2 (2012-02-14 patchlevel 318) [i686-linux] 
    - INSTALLATION DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318 
    - RUBY EXECUTABLE: /home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin/ruby 
    - EXECUTABLE DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-linux 
    - GEM PATHS: 
    - /home/jacek/.rvm/gems/ruby-1.9.2-p318 
    - /home/jacek/.rvm/gems/[email protected] 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

Đường dẫn của tôi (bao gồm DIRECTORY EXECUTABLE: /home/jacek/.rvm/gems/ruby-1.9.2- p318/bin)

/home/jacek/.rvm/gems/ruby-1.9.2-p318/bin:/home/jacek/.rvm/gems/[email protected]/bin:/home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin:/home/jacek/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

tôi sẽ biết ơn sự giúp đỡ nào

+4

Điều gì sẽ xảy ra nếu bạn thử 'đường ray exec s'? – Batkins

+0

Hmm có lỗi khác, có thể với đá quý khác. Có vẻ như giải pháp của bạn là chính xác. Bạn có thể cho tôi biết, tại sao tôi không thể gõ chỉ đường ray? – zachar

+1

'./script/rails s' sử dụng Gemfile – shingara

Trả lời

17

Nếu bạn sử dụng lệnh bundle install để cài đặt đá quý của bạn tắt của một GEMFILE, nó sẽ cài đặt các viên ngọc vào vị trí hệ thống mặc định của bạn cho đá quý, như được nêu trong the bundler docs here. Sau đó, bạn có thể sử dụng lệnh bunder bundle exec để thực hiện lệnh trong ngữ cảnh của gói, as outlined in the docs here. Điều này sẽ đảm bảo rằng phiên bản của gem bạn đã cài đặt sử dụng bundle install được thực hiện.

Nếu bạn nhìn vào homepage for bundler, cung cấp một cái nhìn tổng quan về các tài liệu, nó khẳng định như sau:

Trong một số trường hợp, chạy file thực thi mà không bó exec có thể làm việc, nếu thực thi xảy ra để được cài đặt trong hệ thống của bạn và không kéo bất kỳ đá quý nào xung đột với gói của bạn.

Tuy nhiên, điều này không đáng tin cậy và là nguồn gây đau đáng kể. Ngay cả khi nó có vẻ như nó hoạt động, nó có thể không hoạt động trong tương lai hoặc trên một máy khác.

Tôi đoán rằng bạn chạy gem which rails trong giao diện điều khiển của bạn, và sau đó chạy bundle show rails trong giao diện điều khiển của bạn, quá trình cài đặt đường ray mặc định cài đặt cho hệ thống của bạn khác với một cài đặt cho nhóm của mình.

Bạn nói rằng bạn đang sử dụng rvm để quản lý rubygem của mình. Tôi nghĩ bạn có thể không cấu hình đúng. Thử thực hiện lệnh rvm notes trong bảng điều khiển của bạn để đảm bảo rằng bạn đã giải quyết tất cả các bước được yêu cầu/được đề nghị để cài đặt trên hệ điều hành của bạn. Bạn muốn đảm bảo rằng các tập tin thực thi cho rvm là những thứ đầu tiên được bao gồm trong đường dẫn của bạn khi bạn chạy echo $PATH lý tưởng. Điều này sẽ đảm bảo rằng những viên đá quý được cài đặt cho rvm sẽ là những cái được thực hiện khi bạn thử thực hiện chúng mà không cần tiền tố bundle exec. Nếu rvm notes không cung cấp cho bạn các gợi ý cần thiết để thực hiện điều đó, hãy thử xem xét cẩn thận docs for installation on the RVM website.

27

Đối với tôi, chỉ cần trình cài đặt gói. Điều này làm cho mọi thứ hoạt động trở lại.

gem install bundler --no-ri --no-rdoc 
0

Tôi nghĩ bên dưới lệnh sẽ làm việc

gem pristine rails 
5

Bạn có thể chuyển về phiên bản giữa Ruby với $ rvm use --default 2.4.0 ví dụ

Nhưng đối với vấn đề của bạn thử điều này:

  1. $ gem install bundler

  2. $ gem install rails

Hy vọng nó sẽ giúp!

Các vấn đề liên quan