2012-02-28 31 views
7

Tôi vừa nâng cấp từ Rails 3.0.3 lên 3.2.1. Việc nâng cấp diễn ra suôn sẻ trên máy Mac của tôi nhưng tôi gặp sự cố khi tải một phiên bản 3.2.1 của ứng dụng đang chạy trên máy chủ sản xuất Ubuntu của tôi. Lỗi tôi nhận được là:Không thể tìm thấy i18n-0.6.0 trong bất kỳ nguồn nào

Could not find i18n-0.6.0 in any of the sources (Bundler::GemNotFound) 

Rõ ràng, những người khác đã gặp vấn đề tương tự trước đây. Rất tiếc, the solution here không khắc phục được sự cố cho tôi. Làm sudo bundle install dường như không tạo nên sự khác biệt.

Tôi cũng tìm thấy this post nhưng tôi không hiểu chính xác OP đã làm gì để khắc phục sự cố.

this post cũng vậy nhưng vấn đề của OP chỉ có thể biến mất một mình.

Và tôi làm có i18n đá quý cài đặt:

$ gem list | grep i18n 
i18n (0.6.0, 0.5.0) 

Tôi không có ý tưởng những gì có thể sai. Bất kỳ ý tưởng?

+0

Bạn có thể chạy 'danh sách nhóm | grep i18n' và đầu ra vui lòng? – TheDelChop

+0

'* i18n (0.6.0)' –

+0

lệnh mà bạn đang cố gắng chạy cung cấp cho bạn lỗi là gì? – TheDelChop

Trả lời

7

Tôi đã gặp lỗi tương tự. Bạn đang sử dụng rvm và hành khách?

Nếu bạn đã cài đặt RVM trước khi bắt đầu cài đặt hành khách, sau khi hành khách kết thúc cài đặt của nó cung cấp cho bạn các hướng dẫn để cập nhật cấu hình apache với một cái gì đó tương tự như: hành khách

LoadModule passenger_module /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.11/ext/apache2/mod_passenger.so 
PassengerRoot /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.11 
PassengerRuby /usr/local/rvm/wrappers/[email protected]/ruby 

Tôi đã cài đặt với gemset toàn cầu nhưng sau đó Tôi đã tạo một gemset khác mà tôi đã sử dụng cho ứng dụng của mình (hãy gọi gemset mới này là 'foo').

Các giải pháp mà làm việc cho tôi là để thay đổi 'toàn cầu' thành 'foo' trong dòng thứ 3:

PassengerRuby /usr/local/rvm/wrappers/[email protected]/ruby 
+0

Cảm ơn câu trả lời của bạn @draganstankovic, nhưng đó không thực sự là giải pháp. Toàn bộ điểm của gemset toàn cầu là để nó có thể được chia sẻ bởi nhiều ứng dụng. – dangerousdave

+0

@dangerousdave Vui lòng đọc lại câu trả lời của tôi. Vấn đề là trên đồng bộ hành khách với bất kỳ gemset ông sử dụng. (có thể là toàn cầu, foo hoặc bar, nó không quan trọng) – draganstankovic

1

Hồ .rvmrc tại thư mục gốc của ứng dụng của bạn giải quyết vấn đề này. Qua số rvm documentation:

# my-app-name/.rvmrc 
if [[ -s "/Users/sutto/.rvm/environments/[email protected]" ]] ; then 
    . "/Users/sutto/.rvm/environments/[email protected]" 
else 
    rvm --create use "[email protected]" 
fi 

Thay thế bằng đúng người dùng, phiên bản Ruby và gemset nếu có. (Người dùng Linux có thể sẽ có home/username/.rvm ...)

Bây giờ chúng ta hãy thêm setup_load_paths.rb để hành khách có các đường dẫn chính xác (không nên có bất cứ điều gì để thay đổi ở đây):

# my-app-name/config/setup_load_paths.rb 
if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm') 
    begin 
    require 'rvm' 
    RVM.use_from_path! File.dirname(File.dirname(__FILE__)) 
    rescue LoadError 
    raise "RVM gem is currently unavailable." 
    end 
end 

# If you're not using Bundler at all, remove lines bellow 
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__)) 
require 'bundler/setup' 
1

Tôi đã có cùng một vấn đề và tôi nhận ra rằng tôi đã sử dụng jRuby để cào (tôi đã sử dụng RVM). Với Ruby nó đã đi mà không có một vấn đề :)

Vì vậy, hãy chắc chắn rằng bạn đang sử dụng Ruby thay vì jRuby. Chỉ trong trường hợp bạn đang sử dụng RVM là tốt, sử dụng:

rvm list 

Để có được danh sách của tất cả các hồng ngọc cài đặt và

rvm use ruby-... 

Để chọn nó.

+0

Điều này làm việc cho tôi và có ý nghĩa hơn là đổi tên toàn cầu thành foo – 1dayitwillmake

+0

Tuy nhiên, đã bị giảm giá. Yay – Sikian

3

bundle install --deployment đã làm việc cho tôi.

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