Пропавшие без вести Rails Gem - PullRequest
2 голосов
/ 13 января 2011

Я знаю, что этот вопрос задавался несколько раз на этом сайте, но, перебирая другие ответы, я все еще не знаю, как решить эту проблему.

Я только что извлек копию приложения rails с рабочего сервера и получаю следующую ошибку:

Missing the Rails 2.3.4 драгоценный камень. пожалуйста gem install -v=2.3.4 rails, обновление ваша настройка RAILS_GEM_VERSION в config / environment.rb для Rails версия, которую вы установили, или закомментируйте RAILS_GEM_VERSION для использования установлена ​​последняя версия.

рельсы 2.3.4 в моем списке драгоценных камней:

*** LOCAL GEMS ***

actionmailer (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.3.6)
actionpack (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.13.6)
actionwebservice (1.2.6)
activerecord (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.15.6)
activeresource (2.3.8, 2.3.5, 2.3.4, 2.2.2)
activesupport (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.4.4)
acts_as_ferret (0.4.3)
authlogic (2.1.6)
capistrano (2.5.2)
cgi_multipart_eof_fix (2.5.0)
daemons (1.0.10)
dnssd (0.6.0)
fastercsv (1.5.4)
fastthread (1.0.1)
fcgi (0.8.7)
ferret (0.11.6)
gem_plugin (0.2.3)
gemcutter (0.6.1)
google-spreadsheet-ruby (0.1.2)
highline (1.5.0)
hpricot (0.6.164)
libxml-ruby (1.1.2)
mongrel (1.1.5)
mysql (2.8.1)
needle (1.3.0)
net-scp (1.0.1)
net-sftp (2.0.1, 1.1.1)
net-ssh (2.0.4, 1.1.4)
net-ssh-gateway (1.0.0)
nokogiri (1.4.4)
oauth (0.4.4)
packet (0.1.15)
prawn (0.8.4)
prawn-core (0.8.4)
prawn-fast-png (0.2.3)
prawn-layout (0.8.4)
prawn-security (0.8.4)
rack (1.2.1, 1.1.0, 1.0.1)
rails (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.2.6)
rake (0.8.3)
RedCloth (4.1.1)
rmagick (2.13.1)
roo (1.9.3)
ruby-ole (1.2.11.1)
ruby-openid (2.1.2)
ruby-yadis (0.3.4)
rubynode (0.1.5)
rubyzip (0.9.4)
spreadsheet (0.6.5.0)
sqlite3-ruby (1.2.4)
termios (0.9.4)
xmpp4r (0.4)

И gem list -d rails выглядит так:

*** LOCAL GEMS ***

rails (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.2.6)
    Author: David Heinemeier Hansson
    Rubyforge: http://rubyforge.org/projects/rails
    Homepage: http://www.rubyonrails.org
    Installed at (2.3.8): /Library/Ruby/Gems/1.8
                 (2.3.5): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
                 (2.3.4): /Library/Ruby/Gems/1.8
                 (2.2.2): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
                 (1.2.6): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8

    Web-application framework with template engine, control-flow layer,
    and ORM.

Теперь вот где я потерялся: в environment.rb у меня есть эта строка для выбора рельсов 2.3.4.

RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION

Если я изменю эту строку на:

RAILS_GEM_VERSION = '2.3.8' unless defined? RAILS_GEM_VERSION

Ошибка исчезает. Я знаю, что есть версии рельсов, установленных в разных местах, но две рассматриваемые версии установлены в одном месте. Почему 2.3.8 не вызывает ошибку, а 2.3.4 - нет?

Как я могу решить эту проблему?

ПРИМЕЧАНИЕ: я работаю на Пассажире

ТАКЖЕ ВНИМАНИЕ: скрипт / консоль работает под 2.3.4 ... но приложение все еще не работает в веб-браузере.

UPDATE

Хорошо, поэтому я проверил директиву PassengerRuby в httpd.conf, и она была /usr/local/bin/ruby, тогда как which ruby выдала /usr/bin/ruby. Я изменил директиву на /usr/bin/ruby.

Это решило проблему с веб-браузером, однако теперь скрипт / консоль не работает с той же ошибкой:

Missing the Rails 2.3.4 gem. пожалуйста gem install -v=2.3.4 rails, обновление ваша настройка RAILS_GEM_VERSION в config / environment.rb для Rails версия, которую вы установили, или закомментируйте RAILS_GEM_VERSION для использования установлена ​​последняя версия.

Так что теперь я могу нормально просматривать проект в веб-браузере. Но я не могу использовать скрипты rails, и rake db:migrate завершается с ошибкой:

/ System / Library / Frameworks / Ruby.framework / Версии / 1,8 / USR / Lib / рубин / 1,8 / rubygems.rb: 827: в report_activate_error': Could not find RubyGem rake (>= 0) (Gem::LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:261:in активировать 'из /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:68:in `gem 'из / usr / bin / rake: 18

Ответы [ 2 ]

2 голосов
/ 13 января 2011

Соответствует ли директива PassengerRuby в вашей конфигурации Apache выводу, полученному из "какого рубина"? Если нет, то ваш пассажир не ищет драгоценные камни в том же месте, где вы

0 голосов
/ 13 января 2011

Возможно, у вас установлены драгоценные камни, но Пассажир может искать в другом месте.Единственное, что может сработать, это установить переменную окружения GEM_HOME в вашей конфигурации.

В Apache это будет выглядеть так:

SetEnv GEM_HOME /Library/Ruby/Gems/1.8

Вы можете обнаружить, что 2.3.4 не находится вэтот каталог по какой-то причине, как будто это была неудачная установка, которая не содержит файлов.

Убедитесь, что 2.3.4 правильно загружен, посмотрев:

% ls -l /Library/Ruby/Gems/1.8/gems/rails-2.3.4
...