3

尽管我遵循了在 Cygwin 下使用 dotCloud CLI 的通常步骤,但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
4

1 回答 1

4

您可能会遇到 Cygwin 的组权限中的错误。Vineet Gupta 在他的博客中提供了一种解决方法。问题来自ssh密钥周围期望的非常严格的权限,解决方案是正确设置 ssh 密钥的权限(设置为 600,rw仅限所有者)。Cygwin 似乎需要手动添加组。

更新安装 dotCloud CLI 的步骤(包括设置权限)会导致:

  1. 启动Cygwin 安装程序
  2. 选择默认选项,直到您到达包选择对话框。
  3. 启用以下软件包:

    • 网络/openssh
    • 网络/rsync
    • 开发/混帐
    • 开发/水银
    • python/python(确保它至少为 2.6!)
    • 网络/wget
  4. 安装后,您的桌面上应该有一个 Cygwin 图标。启动它:您将获得一个命令行 shell。

  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,因此值得检查。

于 2013-06-06T18:08:34.530 回答