dotcloud push на cygwin завершается с ошибкой rsync: необъяснимая ошибка (код 255) (аналогично git и hg)

Хотя я следовал обычным шагам по использованию dotCloud CLI под Cygwin, dotcloud push не работает во всех случаях: --rsync, --hg, and --git.

Я на Windows 8 и Cygwin.

Как добиться успеха?

Пример вывода:

me@host /cygdrive/d/project 
$ dotcloud push --rsync 
==> Pushing code with rsync from "./" to application myapp 
rsync: connection unexpectedly closed (0 bytes received so far) [sender] 
rsync error: unexplained error (code 255) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [sender=3.0.9]

me@host /cygdrive/d/project 
$ dotcloud push --git 
Permission denied (publickey,password).r from "./" to application myapp 
fatal: The remote end hung up unexpectedly

me@host /cygdrive/d/project 
$ dotcloud push --hg 
==> Pushing code with mercurial from "./" to application myapp 
abort: no suitable response from remote hg! 
Error: Mercurial returned a fatal error

person Andy    schedule 06.06.2013    source источник


Ответы (1)


Возможно, вы столкнулись с ошибкой в ​​групповых разрешениях Cygwin. Вайнит Гупта предлагает обходной путь в своем блоге Проблема возникает из-за очень строгих разрешений, ожидаемых ssh для ключей, и решение состоит в том, чтобы правильно установить разрешение на ключ ssh (до 600, rw только владельцем). Cygwin, кажется, нуждается в добавлении группы вручную.

Обновление шагов по установке dotCloud CLI, включая настройку разрешений, приводит к следующему:

  1. Запустите установку Cygwin.
  2. Выбирайте варианты по умолчанию, пока не дойдете до диалогового окна выбора пакета.
  3. Включите следующие пакеты:

    • net/openssh
    • сеть/rsync
    • разработка/git
    • развивающийся / меркуриальный
    • python/python (убедитесь, что он не ниже 2.6!)
    • веб/wget
  4. После установки у вас должен появиться значок Cygwin на рабочем столе. Запустите его: вы получите оболочку командной строки.

  5. Скачать easy_install

    wget http://peak.telecommunity.com/dist/ez_setup.py
    
  6. Установить easy_install

    python ez_setup.py
    
  7. Теперь у вас есть easy_install; давайте используем его для установки pip:

    easy_install pip
    
  8. Теперь установите dotcloud (CLI)

    pip install dotcloud
    
  9. Настройте CLI с вашими учетными данными. Это также загрузит ключ ssh.

    dotcloud setup
    
  10. Новый шаг Обновите разрешения для вашего ключа dotCloud:

    chgrp Users ~/.dotcloud_cli/dotcloud.key
    chmod 600 ~/.dotcloud_cli/dotcloud.key
    

Теперь вы сможете dotcloud push Если у вас есть несколько аккаунтов dotCloud, вам нужно будет повторить этот процесс для каждой учетной записи, так как каждая учетная запись имеет свой собственный ключ. Также обратите внимание, что вам не нужно устанавливать эти разрешения вручную, но кажется, что владение группой иногда является неправильным значением по умолчанию в Cygwin. Linux и OSX, кажется, не показывают эту проблему, хотя разрешения должны быть 600 для всех ОС, так что стоит проверить.

person Andy    schedule 06.06.2013
comment
Если у вас уже установлен Cygwin и вы фактически обновляете его при настройке dotCloud, возможно, вам придется выполнить «rebaseall». Если вы видите странные сообщения об ошибках в Cygwin после обновления, прочитайте Cygwin Upgrades and rebaseall для исправления! (Спасибо Кевину Ли за этот совет!) - person Andy; 13.06.2013
comment
Примечание: убедитесь, что вы установили Cygwin x86. В 64-битной версии клиент dotcloud cli не может быть установлен (pip не может установить пакет запросов). - person ShinNoNoir; 14.09.2013