2013-01-05 31 views
15

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 
+0

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

+0

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

+0

'khởi tạo ': Địa chỉ đã được sử dụng - /tmp/.sock (Errno :: EADDRINUSE) – markhorrocks

Trả lời

19

Hủy bỏ tất cả các phiên bản của Rake ==>gem uninstall rake
Remove Gemfile.lock ==>rm Gemfile.lock
Run bó cài đặt ==>bundle install

gem install rake --version=10.0.2 

nếu bạn vẫn nhận được lỗi sau đó đặt này vào gemfile của bạn.

gem 'rake', '0.8.7' 
+2

Trong trường hợp ai đó đến trang này có cùng vấn đề với tôi. Nếu bạn đang triển khai một ứng dụng đường ray bằng cách sử dụng capistrano 3, bạn nên thêm 'require' capistrano/rails'' ở đầu của Capfile. –

+1

Tôi đang triển khai ứng dụng đường ray. Tôi đã thêm 'require' capistrano/rails'' vào đầu của Capfile và thử lại. Lỗi tương tự. Vì vậy, tôi không biết nếu đó là một giải pháp. Đối với một số lý do nó cần cào ở mức hệ thống và không phải trong thư mục vendor/bin. –

8
bundle update rake 

làm việc cho tôi. Tôi đã có vấn đề tương tự.

4

Nếu bạn vẫn đang tìm kiếm một giải pháp ... Đối với tôi đó là vấn đề của việc sử dụng sudo bundle install thay vì chỉ bundle install.

+0

Điều này đã hiệu quả. Bất cứ ai có thể cho tôi biết tại sao điều đó xảy ra? Nó giống như hệ điều hành được giữ cho các gói đá quý song song .. – nurinur

2

Tôi đã có thông báo lỗi khó hiểu này .... hóa ra tôi đã tạo bản phát hành 'nhân bản' bên trong thư mục phát hành khiến cho sprockets muốn làm những việc ở đó .... Tôi nghĩ rằng nắp sử dụng ngày tạo nó đi ngang qua cây giải phóng vì thế bằng cách nào đó những thứ lộn xộn này ... chắc chắn không có thư mục 'hand made' bổ sung nào trong/release/folder của bạn và bạn sẽ vượt qua lỗi này

1

Tôi cũng gặp vấn đề tương tự. Nguyên nhân cho vấn đề của tôi là Rake cũng được tìm thấy trong /usr/bin/local/ ngoài việc nằm trong thư mục shims trong rbenv. Để kiểm tra xem đây có phải là vấn đề đầu tiên, hãy gỡ cài đặt rake gem uninstall rake rồi chạy which rake. Nếu bạn lấy lại đường dẫn khác với /Users/username/.rbenv/shims/rake thì chỉ cần xóa số nhị phân đó bằng cách sử dụng sudo rm /path/to/file.

Lưu ý rằng trong trường hợp của tôi ít nhất, which gem đang sử dụng tệp thi hành có lỗi được quản lý bởi rbenv, trong khi rake thì không. Vì vậy, tất cả mọi thứ đã làm việc tìm thấy cho đến khi tôi đã cố gắng để gọi rake command từ thiết bị đầu cuối.

Cũng thấy: After installing rbenv and changing Ruby version, Rake no longer runs

Các vấn đề liên quan