Windows 中的 Iceberg/Pharo8 有什么问题?

What's wrong with Iceberg/Pharo8 in Windows?

我正在尝试在 Windows 10 中设置一个 Pharo8 图像,使用我手动克隆的 git 存储库,但是 pharo 给出了一个奇怪的错误。以下代码在 linux 上运行良好,但在 Windows 上运行失败(我已经尝试了 Git Bash 或 msys2-mingw64)。它克隆我的存储库,在子目录中下载一个 Pharo 8 图像 + 虚拟机,将其复制到一个新图像,在其中添加一个 Iceberg 存储库并尝试安装一个 metacello 包:

$ git clone git@github.com:powerlang/powerlang.git powerlang
$ cd powerlang/bootstrap
$ curl https://get.pharo.org/64/80+vm | bash
$ ./pharo Pharo.image save bootstrap
$ ./pharo bootstrap.image eval --save "(IceRepositoryCreator new location: '..' asFileReference; createRepository) register"
$ ./pharo bootstrap.image metacello install tonel://./src BaselineOfPowerlang
MetacelloNotification: Fetched -> BaselineOfPowerlang-tonel.1 --- tonel://C:\dev\powerlang\bootstrap\src --- tonel://C:\dev\powerlang\bootstrap\src
MetacelloNotification: Loaded -> BaselineOfPowerlang-tonel.1 --- tonel://C:\dev\powerlang\bootstrap\src --- tonel://C:\dev\powerlang\bootstrap\src
MetacelloNotification: Loading baseline of BaselineOfPowerlang...
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I will try to clone the HTTPS variant.
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I will try to clone the HTTPS variant.
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I will try to clone the HTTPS variant.
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I will try to clone the HTTPS variant.
3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I will try to clone the HTTPS variant.
[infinite loop]

我是不是做错了什么?我该如何解决这个问题?

看来问题与路径有关。

我最终可以通过手动告诉 Iceberg .ssh 文件在哪里(它应该已经知道 :/ 因为它们在标准目录中)来解决它们。更改为以下行解决了问题:

$ ./pharo bootstrap.image eval --save "IceCredentialsProvider useCustomSsh: true. IceCredentialsProvider sshCredentials publicKey: '`cygpath -w ~/.ssh/id_rsa.pub`'; privateKey: '`cygpath -w ~/.ssh/id_rsa`'. (IceRepositoryCreator new location: '..' asFileReference; createRepository) register"

Iceberg 不支持将 ~ 用于 ssh 路径,也不支持 /c/Users/xxx 符号,因此我们将其转换为 Windows 样式路径(cygwin -w ~/.ssh/id_rsa 转换为 C:\Users\xxx\.ssh\id_rsa).