簡體   English   中英

為什么Rails使用錯誤的Ruby版本?

[英]Why is Rails using the wrong version of Ruby?

我有一個帶有Ruby 1.9.3和rails 3.2.3的Centos6服務器。 我使用RVM。 然后,我安裝了ruby 2.0.0和rails 4.0.0。 我使用RVM更改了默認的ruby版本。 並用ruby --version確認,然后我適當地更改了我的Gemfile並根據需要運行了bundle install和/或bundle update 一切都很好。 然后,我運行了service httpd restart ,該service httpd restart運行,然后導航到我的網站並獲得以下信息:

無法啟動Web應用程序 (旅客乘客錯誤)

Could not find minitest-4.7.5 in any of the sources (Bundler::GemNotFound)
/usr/local/rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize'
/usr/local/rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
/usr/local/rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
/usr/local/rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
/usr/local/rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for'
/usr/local/rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs'
/usr/local/rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/environment.rb:18:in `requested_specs'
/usr/local/rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:13:in `setup'
/usr/local/rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
/usr/local/rvm/gems/ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
/usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
/usr/local/rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5/lib/phusion_passenger/loader_shared_helpers.rb:212:in `run_load_path_setup_code'
/usr/local/rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5/helper-scripts/rack-preloader.rb:73:in `preload_app'
/usr/local/rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5/helper-scripts/rack-preloader.rb:127:in `<module:App>'
/usr/local/rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5/helper-scripts/rack-preloader.rb:6:in `<module:PhusionPassenger>'
/usr/local/rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5/helper-scripts/rack-preloader.rb:5:in `<main>'

Environment variables
rvm_bin_path = /usr/local/rvm/bin
GEM_HOME = /usr/local/rvm/gems/ruby-1.9.3-p429
TERM = xterm
SHELL = /sbin/nologin
HISTSIZE = 1000
IRBRC = /usr/local/rvm/rubies/ruby-1.9.3-p429/.irbrc
PYTHONUNBUFFERED = 1
PASSENGER_ENV = production
PASSENGER_DEBUG_DIR = /tmp/passenger.spawn-debug.11360-47389796731312
SERVER_PORT = 80
MY_RUBY_HOME = /usr/local/rvm/rubies/ruby-1.9.3-p429
USER = nobody
REQUEST_URI = /
rvm_path = /usr/local/rvm
IN_PASSENGER = 1
RACK_ENV = production
REMOTE_PORT = 13101
rvm_prefix = /usr/local
PATH = /usr/local/rvm/gems/ruby-1.9.3-p429/bin:/usr/local/rvm/gems/ruby-1.9.3-p429@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p429/bin:/usr/local/rvm/bin:/usr/local/rvm/gems/ruby-2.0.0-p195/bin:/usr/local/rvm/gems/ruby-2.0.0-p195@global/bin:/usr/local/rvm/rubies/ruby-2.0.0-p195/bin:/usr/local/rvm/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin
MAIL = /var/spool/mail/nobody
WSGI_ENV = production
LANG = C
HISTCONTROL = ignoredups
rvm_env_string = ruby-1.9.3-p429
rvm_version = 1.20.13 (stable)
SHLVL = 2
HOME = /
RAILS_ENV = production
rvm_ruby_string = ruby-1.9.3-p429
SERVER_SOFTWARE = Apache/2.2.15 (CentOS)
LOGNAME = nobody
QUERY_STRING = 
CVS_RSH = ssh
GEM_PATH = /usr/local/rvm/gems/ruby-1.9.3-p429:/usr/local/rvm/gems/ruby-1.9.3-p429@global
LESSOPEN = |/usr/bin/lesspipe.sh %s
SERVER_PROTOCOL = HTTP/1.1
REQUEST_METHOD = GET
RUBY_VERSION = ruby-1.9.3-p429
G_BROKEN_FILENAMES = 1
_ORIGINAL_GEM_PATH = /usr/local/rvm/gems/ruby-1.9.3-p429:/usr/local/rvm/gems/ruby-1.9.3-p429@global

但是,在命令行中運行env顯示以下內容:

GEM_HOME=/usr/local/rvm/gems/ruby-2.0.0-p195
MY_RUBY_HOME=/usr/local/rvm/rubies/ruby-2.0.0-p195
PATH=/usr/local/rvm/gems/ruby-2.0.0-p195/bin:/usr/local/rvm/gems/ruby-2.0.0-p195@global/bin:...and so on
GEM_PATH=/usr/local/rvm/gems/ruby-2.0.0-p195:usr/local/rvm/gems/ruby-2.0.0-p195@global
RUBY_VERSION=ruby-2.0.0-p195

我想念什么? 為什么Rails會嘗試使用錯誤版本的ruby?

您需要使用目標Ruby重新編譯乘客:

rvm use 2.0.0
passenger_install_apache2_module

用它給您的輸出相應地更新您的apache passenger config。

如果您登錄到服務器運行

rvm --default use 2.0.0

好。 因此,經過一些搜索,我發現在我的httpd.conf文件中,已明確設置了舊紅寶石的路徑。 所以我將路徑更改為新的紅寶石路徑

然后跑gem install passenger

然后用

./usr/local/rvm/gems/ruby-2.0.0-p195/gems/passenger-4.0.5/bin/passenger-install-apache2-module

然后service httpd restart ,現在可以正常工作了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM