Zaktualizowałem swój serwer do Ruby 2.1.1 i używam Capistrano do wdrożenia na moim serwerze. Jednak po wdrożeniu otrzymuję różne błędy. Za każdym razem zmieniając się podczas gry z moim kodem wdrożenia. Poniżej znajduje się aktualny numer, który mam.: Odmowa uprawnień
UPDATE/nowej emisji
Po ponownym zainstalowaniu RVM i Ruby Jestem teraz napotykając na różne kwestie wdrożenia. Oto mój plik deploy.rb.
require "bundler/capistrano"
require "rvm/capistrano"
set :rvm_type, :system
set :rvm_ruby_string, "ruby-2.1.1"
require 'bundler/capistrano'
# Capistrano
set :default_environment, {
'PATH' => '/root/.rvm/gems/ruby-2.1.1/bin:/root/.rvm/gems/[email protected]/bin:/usr/local/rvm/rubies/ruby-2.1.1/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games',
'GEM_HOME' => "/root/.rvm/gems/ruby-2.1.1",
'GEM_PATH' => "/root/.rvm/gems/ruby-2.1.1:/root/.rvm/gems/[email protected]",
"MY_RUBY_HOME" => "/usr/local/rvm/rubies/ruby-2.1.1",
"BUNDLE_PATH" => "/usr/local/rvm/rubies/ruby-2.1.1/bin/bundle"
}
set :rails_env, "production"
set :branch, "master"
set :app_server, "ip"
set :db_server, "ip"
server app_server, :app, :web
role :db, db_server, :primary => true
set :keep_releases, 1
set :deploy_to, "/var/www"
set :user, :jason
set :password, "cool password here"
set :repository, "git url" # Your clone URL
set :scm, "git"
set :scm_username, "jason"
set :scm_passphrase, "password"
set :use_sudo, false
default_run_options[:pty] = true
set :ssh_options, {:forward_agent => true}
after 'deploy:restart', 'deploy:cleanup'
after 'deploy:update', 'deploy:create_symlink'
Uruchamiając Deploy spotykam tego błędu:
Error: RVM was unable to use 'default'
Zakładam ten odnosi się do rvm_ruby_string
której nie ustawiony. Poza tym nie mam pojęcia, dlaczego powstaje błąd. Może RVM nie potrafi rozpoznać rubinu na serwerze?
stary problem,
zaktualizowałem mojego serwera ruby 2.1.1. Po przejściu na serwer uruchamiam gem env
chwytam względne cechy default environment
.
set :default_environment, {
'PATH' => '/root/.rvm/gems/ruby-2.1.1/bin:/root/.rvm/gems/[email protected]/bin:/usr/local/rvm/rubies/ruby-2.1.1/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games',
'GEM_HOME' => "/root/.rvm/gems/ruby-2.1.1",
'RUBY_VERSION' => 'ruby 2.1.1',
'GEM_PATH' => "/root/.rvm/gems/ruby-2.1.1:/root/.rvm/gems/[email protected]"
}
Jednak gdy uruchamiam cap deploy
uzyskać to:
* executing "cd /var/www/releases/20140517014048 && bundle install --gemfile /var/www/releases/20140517014048/Gemfile --path /var/www/shared/bundle --deployment --quiet --without development test"
servers: ["ip address"]
["ip address"] executing command
** [out :: ipaddress] sh: 1: bundle: Permission denied
zakładam jego domyślną środowiska. Ponieważ jest to jedyna rzecz, którą zmieniłem w moim pliku deploy.rb
. `
SSH do maszyny, użyj 'which bundle', aby znaleźć plik wykonywalny pakietu, użyj' ls -l/path/to/bundle' aby sprawdzić uprawnienia i właściciela pliku. Spójrz na 'PATH', która została ustawiona powyżej dla innego pliku' bundle' również z 'find/path/one/-name bundle' dla każdej ścieżki. Spróbuj uruchomić komendę pakunku z powłoki. Spójrz na pierwszą linię, aby zobaczyć '#!/Path/to/ruby', i użyj' ls -l', aby sprawdzić jego uprawnienia. – Chloe
'który pakiet' nie drukuje niczego w terminalu. – jason328
Tak więc powiedział '/ usr/bin/który: brak pakietu w (...'? Ustaw ścieżkę do powyższej ścieżki, a następnie uruchom co jeszcze raz – Chloe