जब भी मैं रुबी और इसकी जेमलिस्ट को आरवीएम और कैपिस्ट्रानो का उपयोग कर अद्यतन करता हूं तो मैं यात्री द्वारा उपयोग किए गए रूबी संस्करण को कैसे अपडेट करूं? यह जांचने का सबसे अच्छा तरीका क्या है कि मेरा ऐप सही रूबी संस्करण और रत्न का उपयोग कर रहा है या नहीं?रुबी संस्करण 2.1.2 में अपग्रेड किया गया, यात्री अभी भी 1.9.3
मेरे पास एनजीएनएक्स और पैसेंजर के साथ एक लिनोड सर्वर (उबंटू) पर चलने वाला एक रेल ऐप है। इससे पहले कि यह किसी भी समस्या के बिना चल रहा था।
पहले मेरे ऐप रूबी 1.9.3-p194
मैं RVM का उपयोग माणिक संस्करणों का प्रबंधन करने के दोनों स्थानीय और सर्वर पर साथ ऑन रेल्स 3.2.16 रूबी चल रहा था। रूबी-2.1.2 स्थापित करने के बाद और मूल रत्न अपडेट किया (बंडलर, नोकोगिरी, आदि ...) मैंने अपने आवेदन के लिए अपना नया रत्न बनाया।
विकास (स्थानीय रूप से) में रूबी 2.1.2, रेल 3.1.1 9 (इससे पहले कि मैं रेल 4 में अपग्रेड करता हूं) और इस प्रोजेक्ट के लिए एक विशिष्ट रत्न का उपयोग करता हूं।
मैं Capistrano के लिए मेरे deploy.rb
संशोधित, निम्नलिखित RVM-Capistrano gem Integration
require "rvm/capistrano"
require "bundler/capistrano"
set :user, "myusername"
set :application, "myapp"
set :deploy_to, "/home/#{user}/apps/#{application}"
set :scm, :git
set :repository, "[email protected]:myusername/#{application}.git"
set :branch, "master"
set :rvm_ruby_string, :local # use the same ruby as used locally for deployment
set :rvm_autolibs_flag, "read-only" # more info: rvm help autolibs
set :use_sudo, false
set :deploy_via, :remote_cache
set :keep_releases, 3
default_run_options[:pty] = true
set :ssh_options, { :forward_agent => true }
before 'deploy:setup', 'rvm:install_rvm' # install/update RVM
before 'deploy:setup', 'rvm:install_ruby' # install Ruby and create gemset
after "deploy:restart", "deploy:cleanup"
after "deploy", "rvm:trust_rvmrc"
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
# ... some more tasks for assets and symlinks
end
namespace :rvm do
task :trust_rvmrc do
run "rvm rvmrc trust #{release_path}"
end
end
मैं तो cap deploy
मैं अपने वेब पृष्ठ ताज़ा किया गया, और यात्री निम्न त्रुटियों फेंकता है:
It looks like Bundler could not find a gem. Maybe you didn't install all the gems that this application needs. To install your gems, please run:
bundle install
...
Could not find rake-10.3.2 in any of the sources (Bundler::GemNotFound)
/home/myusername/.rvm/gems/[email protected]/gems/bundler-1.5.3/lib/bundler/spec_set.rb:92:in `block in materialize'
...
Ruby interpreter command
/home/myusername/.rvm/gems/ruby-1.9.3-p194/wrappers/ruby
तो जाहिरा तौर पर यात्री अभी भी रुबी-1.9.3 चला रहा है और रूबी-2.1.2 नहीं। मुझे यकीन नहीं है कि आरवीएम-कैपिस्ट्रानो ने रुबी संस्करण और उपयुक्त रत्न को स्थापित/अपडेट किया है या नहीं। मुझे यकीन नहीं है कि मुझे क्या याद आया?
संपादित करें: मैं /opt/nginx/conf/nginx.conf
में जड़ उपयोगकर्ता के रूप में nginx.conf
जाँच की फ़ाइल के शीर्ष पर मैं
...
http {
passenger_root /home/myusername/.rvm/gems/ruby-1.9.3-p194/gems/passenger-4.0.37;
passenger_ruby /home/myusername/.rvm/gems/ruby-1.9.3-p194/wrappers/ruby;
...
server {
listen 80;
server_name XXX.XXX.XX.XX myapp.com www.myapp.com *.myapp.com;
root /home/myusername/apps/myapp/current/public;
passenger_enabled on;
client_max_body_size 4G;
}
करता है इसका मतलब यह है कि मैं ruby- साथ इन पंक्तियों बदलना होगा पाया 2.1.2? क्या इस बदलाव को स्वचालित करने का कोई तरीका है?
अद्यतन 2: मैं nginx.conf
http {
passenger_root /home/myusername/.rvm/gems/[email protected]/gems/passenger-4.0.53;
passenger_ruby /home/myusername/.rvm/gems/[email protected]/wrappers/ruby;
संशोधित और मेरे deploy.rb
में मैं स्पष्ट रूप से gemset है [email protected]
set :rvm_ruby_string, "[email protected]"
एप्लिकेशन ठीक चल रहा है उपयोग करने के लिए कहता हूं, रूबी दुभाषिया है अभी भी 1.9.3। मैं भी एक व्यवस्थापक पेज RUBY_VERSION
निरंतर पर मुद्रित, और यह 1.9.3
मुझे समझ नहीं आता प्रदर्शित करता है ...
धन्यवाद आपकी मदद के
आपके उत्तर के लिए धन्यवाद। यात्री-nginx मॉड्यूल पहले से ही स्थापित है और दोनों चल रहे हैं। रुबी 1.9.3 पर, मेरे पास यात्री मणि 4.0.37 है, और रूबी 2.1.2 पर मेरे पास यात्री मणि 4.0.53 है। समस्या तब होती है जब मैं अपने deploy.rb capistrano फ़ाइल में 1.9.3-p194 के अलावा एक अलग रूबी संस्करण के साथ बदलता हूं, फिर इसे तैनात करता हूं, यात्री त्रुटियों का एक समूह भेजता है। –