Capistrano Deploy завершается неудачно с помощью git: 'info' не является командой git - PullRequest
1 голос
/ 16 июня 2011

Я устанавливаю новый проект с Capistrano, и хотя я могу успешно запустить cap deploy:setup, если я пытаюсь развернуть свой проект, я получаю ошибку ниже

→ cap deploy
  * executing `deploy'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git info git@github.com:foo/Baconalytics.git  -rHEAD"
git: 'info' is not a git command. See 'git --help'.

Did you mean one of these?
    init
    mailinfo
*** [deploy:update_code] rolling back

У меня есть несколько других проектов, которые нормально развертываются с той же машины, но этот не будет. Git установлен на моем хосте и цели. Кто-нибудь знает шаги по устранению неполадок, которые я могу предпринять?

Мой файл deploy.rb:

require "bundler/capistrano"
set :application, "baconalyitcs"
set :repository, "git@github.com:foo/Baconalytics.git"
set :scm_command, "git"
set :deploy_to, "/root/baconalytics"
set :branch, "master"
set :user, "root"
set :use_sudo, false
ssh_options[:forward_agent] = true


set :deploy_via, :remote_cache



set :ruby_prefix, "/usr/bin/ruby"
set :deploy_user, "#{ENV['USER']}"

role :worker, "xxx.compute-1.amazonaws.com", :primary => true
role :namenode, "xxx.compute-1.amazonaws.com"

after "deploy", "deploy:bundle_gems"
after "deploy", "deploy:print_success_banner"


namespace :deploy do

  task :print_success_banner do
    puts "---------------------------------------------------"
    puts "--------------- DEPLOY SUCCEEDED ------------------"
    puts "---------------------------------------------------"
  end


  task :bundle_gems, :roles => [:worker] do
    run "rm -rf /mnt/app/current/vendor/cache; true"
    run "if [ -f /mnt/app/current/Gemfile.lock ]; then rm /mnt/app/current/Gemfile.lock; fi;"

    cmd = [
           "cd #{current_path}",
           "#{ruby_prefix}/bundle install",
          ].join(" && ")
    run cmd
  end
end

task :ssh do
  role = ARGV[1]
  servers = @roles[role.to_sym].servers rescue @roles[role.to_sym]
  puts instances = `rake ec2:din` unless server
  instances = instances.split("\n") unless server
  system "ssh -o StrictHostKeyChecking=no root@#{(server || instances[ssh_server.to_i].split("\t")[2])}"
end

Ответы [ 3 ]

3 голосов
/ 16 июня 2011

Обновление после публикации файла deploy.rb:

Вы должны использовать set :scm, "git", чтобы он распознал, что вы используете git. Надеюсь, это поможет.

Обратите внимание, мое первоначальное утверждение о путанице между git и svn верно. Он думал, что это был репозиторий SVN, но так как вы изменили только scm_command на git, он пытался git info. scm_command Я думаю, что должен использоваться только тогда, когда команда scm не в пути.


info не такая подкоманда git, как сказано.

git: 'info' is not a git command. See 'git --help'.

Did you mean one of these?
    init
    mailinfo

ясно, git установлен и нормально, но info не является командой git. (Но у svn есть, какая-то путаница между git и svn?)

2 голосов
/ 16 июня 2011

Попробуйте установить git-info?

0 голосов
/ 26 сентября 2016

После предыдущего ответа:

which git-info 

/ usr / bin / git-info

rpm -qf /usr/bin/git-info 

git-extras-4.1.0-1.fc23.noarch

нам нужно установить git-extras хотя бы в Fedora Linux

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...