Rails 2.1.0 Gem Missing - RVM, Passenger, Apache - PullRequest
0 голосов
/ 02 декабря 2011

Вчера я пытался исправить проблему с консолью readline (медленное копирование / вставка в irb), которую я не смог исправить - но также, должно быть, что-то испортилось с моей настройкой rvm.

Ubuntu 11.10.

Первая моя проблема: Невозможно загрузить сайт через виртуальный хост, только скрипт / сервер.При загрузке через virtualhost я получаю следующее:

Missing the Rails 2.1.0 gem. Please `gem install -v=2.1.0 rails`,
update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails
version you do have installed, or comment out RAILS_GEM_VERSION to use
the latest version installed.

Показывает список драгоценных камней (отредактировано для ясности - обратите внимание, что и mysql, и rails 2.1, и пассажирский показывают в списке - он захватывает как глобальные, так и myapp21 гемсеты):

tom@DEVPC2:/var/www/myapp$ gem list

*** LOCAL GEMS ***
....
actionmailer (2.1.0)
actionpack (2.1.0)
activerecord (2.1.0)
activeresource (2.1.0)
activesupport (2.1.0)
bundler (1.0.21)
capistrano (2.9.0)
mysql (2.8.1)
passenger (3.0.11)
rack (1.3.5)
rails (2.1.0)
rake (0.9.2.2)
...

Итак, вот что я пробовал до сих пор:

Я полностью удалил все наборы камней, рубины (только один, 1.8.7), а потом сам рвм.Переустанавливается из направляющей .Добавлены пассажир, связка (не используется для этого проекта) и capistrano в gemset global.Установленный пассажирский модуль для apache2 (passenger-install-apache2-module), следуя инструкциям по добавлению загруженного пассажирского материала в /etc/apache2/apache2.conf:

LoadModule passenger_module /home/tom/.rvm/gems/ruby-1.8.7-p352@global/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /home/tom/.rvm/gems/ruby-1.8.7-p352@global/gems/passenger-3.0.11
PassengerRuby /home/tom/.rvm/wrappers/ruby-1.8.7-p352@global/ruby

Затем: rvm gemset create myapp21 - продолжениеустановить rails 2.1.0, mysql, другие гемы в gemset.

Установить myapp / .rvmrc:

rvm use ruby-1.8.7-p352@myapp21

И config / setup_load_paths.rb:

if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
  begin
    rvm_path     = File.dirname(File.dirname(ENV['MY_RUBY_HOME']))
    rvm_lib_path = File.join(rvm_path, 'lib')
    $LOAD_PATH.unshift rvm_lib_path
    require 'rvm'
    RVM.use_from_path! File.dirname(File.dirname(__FILE__))
  rescue LoadError
    # RVM is unavailable at this point.
    raise "RVM ruby lib is currently unavailable."
  end
end

У меня есть виртуальный хост:

tom@DEVPC2:/var/www/myapp$ cat /etc/apache2/sites-enabled/myapp.local 
<VirtualHost *:80>
   ServerName myapp.local
   RailsEnv development
   DocumentRoot /var/www/myapp/public
   <Directory /var/www/myapp/public>
      AllowOverride all
      Options -MultiViews
   </Directory>
</VirtualHost>

Теперь немного информации:

tom@DEVPC2:/var/www/myapp$ rvm info    
ruby-1.8.7-p352@myapp21:

  system:
    uname:       "Linux DEVPC2 3.0.0-13-generic-pae #22-Ubuntu SMP Wed Nov 2 15:17:35 UTC 2011 i686 i686 i386 GNU/Linux"
    bash:        "/bin/bash => GNU bash, version 4.2.10(1)-release (i686-pc-linux-gnu)"
    zsh:         " => not installed"

  rvm:
    version:      "rvm 1.10.0-pre by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]"

  ruby:
    interpreter:  "ruby"
    version:      "1.8.7"
    date:         "2011-06-30"
    platform:     "i686-linux"
    patchlevel:   "2011-06-30 patchlevel 352"
    full_version: "ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]"

  homes:
    gem:          "/home/tom/.rvm/gems/ruby-1.8.7-p352@myapp21"
    ruby:         "/home/tom/.rvm/rubies/ruby-1.8.7-p352"

  binaries:
    ruby:         "/home/tom/.rvm/rubies/ruby-1.8.7-p352/bin/ruby"
    irb:          "/home/tom/.rvm/rubies/ruby-1.8.7-p352/bin/irb"
    gem:          "/home/tom/.rvm/rubies/ruby-1.8.7-p352/bin/gem"
    rake:         "/home/tom/.rvm/gems/ruby-1.8.7-p352@global/bin/rake"

  environment:
    PATH:         "/home/tom/.rvm/gems/ruby-1.8.7-p352@myapp21/bin:/home/tom/.rvm/gems/ruby-1.8.7-p352@global/bin:/home/tom/.rvm/rubies/ruby-1.8.7-p352/bin:/home/tom/.rvm/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
    GEM_HOME:     "/home/tom/.rvm/gems/ruby-1.8.7-p352@myapp21"
    GEM_PATH:     "/home/tom/.rvm/gems/ruby-1.8.7-p352@myapp21:/home/tom/.rvm/gems/ruby-1.8.7-p352@global"
    MY_RUBY_HOME: "/home/tom/.rvm/rubies/ruby-1.8.7-p352"
    IRBRC:        "/home/tom/.rvm/rubies/ruby-1.8.7-p352/.irbrc"
    RUBYOPT:      ""
    gemset:       "myapp21"

Использование скрипта / сервера позволяет мне загружать в localhost: 3000 (или любой другой указанный порт).Но я не могу загрузить myapp.local, что только вчера я смог сделать - он говорит мне, что rails отсутствует.

То, что я считаю, происходит: пассажир загружает ruby, виртуальный хост все еще работает, но по какой-то причине это не захватывает директивы из setup_load_paths для загрузки моих наборов гемов на основе rvmrc (я не совсем уверен, что это происходит, но если это так, то это не происходит).

MyСледующий шаг - чистая установка.ПРОСТО ПОЛУЧИЛ эту машину, не хочу тратить мои выходные на это.

Ответы [ 3 ]

0 голосов
/ 06 декабря 2011

Я вернулся к нему и удалил пассажирский драгоценный камень, установил его в глобальный и т. Д. Не повезло.

Вернулся к руководству и скопировал setup_load_paths и .rvmrc точно (ну, и изменил, чтобы соответствовать моим путям), что теперь работает. Наверное, у меня там что-то не так.

0 голосов
/ 17 февраля 2016

У меня была такая же проблема сегодня при переносе приложения Rails 2.x на новый сервер. Оказывается, ошибка неверна. Файл boot.rb в приложениях Rails 2.x спасает от любой ошибки gem с этим сообщением.

Я открыл config / boot.rb и прокомментировал строки ниже (строки, которые выдают сообщение об ошибке в проблеме, описанной в этой ошибке). Затем отображаемая ошибка стала значимой (несколько конфликтующих версий гема - , а не гем Rails), и я смог решить проблему.

#rescue Gem::LoadError => load_error
#  $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
#  exit 1
0 голосов
/ 05 декабря 2011

Поскольку ни у кого нет идей, я отформатировал свой компьютер на этих выходных. ЖЕ ПРОБЛЕМА.

Удалил пассажирский гем из глобала и поместил его в мой конкретный гемс, он сделал пассажирский установщик-apache2-модуль, который заставил код файла конфигурации указать этот гемсет. Это работает сейчас, но IDK, как я буду иметь дело с другими моими проектами.

...