昨天我试图修复readline控制台问题(慢速复制/粘贴在irb中),这是我无法解决的问题 - 但是我的rvm设置也一定搞错了。
Ubuntu 11.10。
首先我的问题:无法通过虚拟主机加载网站,只能加载脚本/服务器。通过虚拟主机加载时,我得到了这个:
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)
...
所以,以下是我到目前为止所尝试的内容:
我已经完全删除了所有gemsets,rubys(只有一个,1.8.7),然后是rvm本身。从guide重新安装。添加了乘客,捆绑器(不用于此项目),以及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创建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,就在昨天我能够做到 - 它告诉我轨道丢失了。
我相信发生了什么: Passenger正在加载ruby,虚拟主机的东西仍在工作,但由于某种原因,它没有从setup_load_paths获取指令来加载我的gemset基于rvmrc(我不完全确定这是发生了什么,但如果是,它是不这样做。)
我的下一步是干净安装。刚刚设置了这台机器,不想浪费我的周末。
答案 0 :(得分:0)
我回去了,取走了乘客宝石,安装到全球等等。没有运气。
回到the guide并完全复制setup_load_paths和.rvmrc(好了,并改为适合我的路径),现在可以正常工作了。我想那里出了点问题。
答案 1 :(得分:-1)
今天,在将Rails 2.x应用程序迁移到新服务器时,我遇到了同样的问题。原来错误不正确。 Rails 2.x应用程序中的文件boot.rb通过该消息从任何 gem错误中解救出来。
我打开了config / boot.rb并注释掉了下面的行(在这个bug中描述的问题中产生错误消息的行)。然后显示的错误变得有意义(gem的多个冲突版本 - 不是 Rails gem),我能够解决问题。
#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
答案 2 :(得分:-5)
由于没有人有任何想法,我本周末将我的电脑格式化了。同样的问题。
从全局卸载乘客宝石并将其放入我的特定宝石集中,使乘客安装-apache2-module使配置文件代码指向该宝石集。它现在有效,但IDK我将如何处理我的其他项目。