2011-12-01 81 views
-4

昨天我試圖解決readline控制檯問題(在irb中慢速複製/粘貼),我無法修復 - 但也必須弄亂一些東西與我的RVM設置不好。Rails 2.1.0 Gem Missing - RVM,Passenger,Apache

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中,軌道2.1和乘客顯示在列表中 - 它是從全局和myapp21 gemsets斂):

[email protected]:/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全球。 apache2的安裝乘客模塊(乘客安裝-Apache2的模塊),之後指示添加負載乘客東西/etc/apache2/apache2.conf中:

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

然後:RVM寶石打造myapp21 - 繼續安裝rails 2.1.0,mysql,gemset等其他寶石。

設置的myapp/.rvmrc:

rvm use [email protected] 

和配置/ 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 

我有我的虛擬主機:

[email protected]:/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> 

現在的一些信息:

[email protected]:/var/www/myapp$ rvm info  
[email protected]: 

    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 ([email protected]) [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/[email protected]" 
    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/[email protected]/bin/rake" 

    environment: 
    PATH:   "/home/tom/.rvm/gems/[email protected]/bin:/home/tom/.rvm/gems/[email protected]/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/[email protected]" 
    GEM_PATH:  "/home/tom/.rvm/gems/[email protected]:/home/tom/.rvm/gems/[email protected]" 
    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缺失。

我認爲正在發生的事情: 乘客裝載紅寶石,虛擬主機的東西仍然工作,但由於某種原因,它不是從setup_load_paths抓住指令加載基礎上,rvmrc我gemsets(我不是,如果完全確定這是發生了什麼,但如果是這樣,它不會這樣做)。

我的下一步是乾淨安裝。只是讓這臺機器全部成立,不想浪費我的週末。

回答

0

我回去了,並刪除了乘客寶石,安裝到全球等。沒有運氣。

回到the guide並準確地複製了setup_load_paths和.rvmrc(很好,並且更改爲適合我的路徑),現在可以工作。我想我在那裏有什麼問題。

-5

由於沒有人有任何想法,我在本週末格式化了我的電腦。同樣的問題。

從全球卸載乘客寶石,並把它放在我的具體gemset,做乘客安裝apache2模塊,使配置文件代碼指向該寶石。它現在可以工作,但IDK將如何處理我的其他項目。

+1

請使用您問題上的編輯鏈接添加其他信息。後回答按鈕應該只用於問題的完整答案。 - [來自評論](/ review/low-quality-posts/11315953) – sadaf2605

+0

@ sadaf2605這是如何編輯?它提供瞭解決方案;具體來說,乘客安裝apache2模塊的作品。這不是一個最佳的解決方案,但它不是***我們應該從評論中刪除的東西。請在審覈時注意並全部閱讀。 – Undo

-1

今天,在將Rails 2.x應用程序遷移到新服務器時,我遇到了同樣的問題。原來錯誤是不正確的。 Rails 2.x應用程序中的boot.rb文件從中解救出任何 gem錯誤。

我打開config/boot.rb並註釋掉下面的行(在此bug中描述的問題中產生錯誤消息的行)。然後顯示的錯誤變得有意義(多個衝突版本的寶石 - 而不是的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