проблема развертывания рельсов новичка Капистрано (не могу найти git в пути) - PullRequest
1 голос
/ 19 февраля 2011

Я использую: Rails 3, ruby ​​1.9.2 и пытаюсь развернуть, используя capistrano. Когда я запускаю cap deploy: check, capistrano сообщает мне, что не может найти git на моем сервере развертывания (см. Ниже).

Есть мысли о том, что я делаю неправильно ??

Вот мои настройки.

  • У меня есть git repo @ github
  • У меня есть ноутбук с обновленной локальной копией github repo
  • У меня есть локальный "рабочий" сервер (192.168.0.103) где должно быть развернуто производственное приложение
  • Я запускаю все команды из локального репо на моем ноутбуке (не на производственном сервере)

Если я запускаю cap deploy:setup В моем файле deploy.rb успешно добавлены каталоги "release" и "shared" на моем производственном сервере (он же 192.168.0.103).

Если я запускаю команду cap deploy: check, произойдет сбой с ошибкойсообщение `git 'не может быть найдено в пути (192.168.0.103).

Что странно (по крайней мере, мне), что git определенно установлен на 192.168.0.103 икоманда, которая используется, чтобы увидеть, работает ли git (какой git), когда я запускаю ssh в 192.168.0.103.

Итак, очевидно, я делаю что-то не так (возможно, в файле deploy.rb?)

Вот обработанная версия файла deploy.rb

default_run_options[:pty] = true
set :application, "myapp"
set :repository,  "git@github.com:xxxxxxx/myapp.git"
set :user, "abcde" #username that's used to ssh into 192.168.0.103
set :scm, :git
set :scm_passphrase, "xxxxxxxx" 
set :branch, "master"
set :deploy_via, :remote_cache
set :deploy_to, "/Users/abcde/www"

role :web, "192.168.0.103"
role :app, "192.168.0.103"

Heвывод команды cap deploy: проверка

  * executing `deploy:check'
  * executing "test -d /Users/abcde/www/releases"
    servers: ["192.168.0.103"]
Password: 
    [192.168.0.103] executing command
    command finished
  * executing "test -w /Users/abcde/www"
    servers: ["192.168.0.103"]
    [192.168.0.103] executing command
    command finished
  * executing "test -w /Users/abcde/www/releases"
    servers: ["192.168.0.103"]
    [192.168.0.103] executing command
    command finished
  * executing "which git"
    servers: ["192.168.0.103"]
    [192.168.0.103] executing command
    command finished
The following dependencies failed. Please check them and try again:
--> `git' could not be found in the path (192.168.0.103)

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

Хорошо, думаю, я понял это.

У меня была та же проблема, что и здесь: http://groups.google.com/group/capistrano/browse_thread/thread/50af1daed0b7a393

Вот выдержка из выбора:

Я пытаюсь развернуть приложение на общая среда, в которой я установленный мерзавец Я добавил путь к bashrc, , но это будет работать только в интерактивном Bash. Когда крышка входя в систему, он не будет работать Баш . Если я запускаю deploy: проверить, не получится от -> `git 'не может быть найден в пути (example.com) Если я установил : scm_command, "/ home / user / opt / bin / git" проблема решена с команда deploy: check, но когда я запускаю развернуть: холодно, это не удается, потому что это пытается запустить / home / user / opt / bin / git на местном уровне, и я даже не могу положить мерзавца там, потому что я использую окна на моем компьютере.

добавление: scm_command, "path / to / my / git" исправило проблему, хотя я не на 100% уверен, что это правильный подход.

0 голосов
/ 19 февраля 2011

Я бы порекомендовал использовать:

default_run_options[:env] = {'PATH' => '/home/user/opt/bin/git:$PATH'}

Это позволит отрегулировать системную переменную среды PATH (и их больше, если необходимо), чтобы проблема не только "Capistrano не может найти SCM"решил любые другие подобные проблемы с Capistrano, не работающим в интерактивном bash (не выполняющим .bashrc и т. д.).

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