Tôi đã cài đặt thành công ứng dụng Rails (3.2.10) trên máy chủ Ubuntu 12.04 trên Rackspace sau Railscasts 335 triển khai lên vps. Nginx, Unicorn, rbenv và Capistrano.Không thể tìm thấy rake-10.0.3 trong bất kỳ nguồn nào
Sau đó, khi tôi cố gắng cài đặt trang web đường ray thứ hai, tôi gặp lỗi "Không thể tìm thấy rake-10.0.3 trong bất kỳ nguồn nào" trong quá trình giới hạn: triển khai. cap: setup và cap: kiểm tra đã thành công. Ngoài ra, không có thư mục hiện tại trong thư mục ứng dụng của tôi.
Nếu tôi cd vào thư mục bản phát hành và chạy cài đặt gói, nó đang sử dụng rake-10.0.3. Sự khác biệt duy nhất giữa hai ứng dụng là ứng dụng mới mà tôi đang cố gắng cài đặt sử dụng đường dẫn nội dung.
Đây là tệp triển khai của tôi giống hệt với cả hai ứng dụng, ngoại trừ tập hợp: chỉ thị ứng dụng.
set :user, 'mark'
set :scm_passphrase, 'xxxx'
set :domain, '99.99.99.99'
set :application, "my_app"
set :repository, "#{user}@#{domain}:git/#{application}.git"
ssh_options[:forward_agent] = true
set :deploy_to, "/var/www/#{application}"
role :app, domain
role :web, domain
role :db, domain, :primary => true
default_run_options[:pty] = true
set :deploy_via, :remote_cache
set :scm, 'git'
set :branch, 'master'
set :scm_verbose, true
set :use_sudo, false
after "deploy", "deploy:cleanup" # keep only the last 5 releases
namespace :deploy do
%w[start stop restart].each do |command|
desc "#{command} unicorn server"
task command, roles: :app, except: {no_release: true} do
run "/etc/init.d/unicorn_#{application} #{command}"
end
end
task :setup_config, roles: :app do
sudo "ln -nfs #{current_path}/config/nginx.conf /etc/nginx/sites-enabled/#{application}"
sudo "ln -nfs #{current_path}/config/unicorn_init.sh /etc/init.d/unicorn_#{application}"
run "mkdir -p #{shared_path}/config"
put File.read("config/database.yml"), "#{shared_path}/config/database.yml"
puts "Now edit the config files in #{shared_path}."
end
after "deploy:setup", "deploy:setup_config"
task :symlink_config, roles: :app do
run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
end
after "deploy:finalize_update", "deploy:symlink_config"
desc "Make sure local git is in sync with remote."
task :check_revision, roles: :web do
unless `git rev-parse HEAD` == `git rev-parse origin/master`
puts "WARNING: HEAD is not the same as origin/master"
puts "Run `git push` to sync changes."
exit
end
end
before "deploy", "deploy:check_revision"
end
Cuối cùng tôi đã khắc phục điều này bằng cách cài đặt đường ray và đá quý khác vào hệ thống từ thư mục chính của tôi bằng sudo. Rất lạ kể từ khi ứng dụng đầu tiên không yêu cầu điều này. Chạy cài đặt gói cho biết tất cả đã được sử dụng. Tiếp theo nó không thể khởi động /etc/init.d/unicorn_myapp. Tôi đã cố gắng để bắt đầu nó bằng tay nhưng một lỗi tuyên bố nó không tồn tại – markhorrocks
Thứ nhất, capistrano đã không thể hoàn thành vì nó có thể tìm thấy không có đá quý. Điều này mặc dù một ứng dụng khác chạy hoàn hảo. Vì vậy, tôi đã cài đặt những viên đá quý như đá quý hệ thống. Bundle dường như muốn sử dụng chúng thay vì cài đặt đá quý của riêng mình. Bây giờ con kỳ lân không tồn tại sau khi chạy unicorn_rails -c/var/www/my_app/config/unicorn.rb -D – markhorrocks
'khởi tạo ': Địa chỉ đã được sử dụng - /tmp/.sock (Errno :: EADDRINUSE) – markhorrocks