cygwin 上的 sdkman 无法安装

问题描述 投票:0回答:5

我正在设置一台新机器并在 Cygwin 上安装 sdkman 以安装 Java。我在我以前的机器(也是 Win 10)上进行了完全相同的设置。

安装了Cygwin,并且需要sdkman,安装了zip和unzip包。现在我收到以下错误:

$ sdk i java 11.0.3-zulu

Downloading: java 11.0.3-zulu

In progress...

Warning: Failed to create the file
Warning: /home/whyph/.sdkman/tmp/D2txrZkztdcZKSIltTtxclUhHkzF9yIf.bin: No such
Warning: file or directory

curl: (23) Failed writing body (0 != 14095)
mv: cannot stat '/home/whyph/.sdkman/tmp/D2txrZkztdcZKSIltTtxclUhHkzF9yIf.bin': No such file or directory

尝试禁用Windows防火墙并以管理员身份运行Cygwin,但都没有改变错误。在我的上一台机器上开箱即用,但无法弄清楚可能有什么不同。

windows-10 cygwin sdkman
5个回答
22
投票

我发现了问题——卷曲错误。事实证明,Windows 10 现在附带了 curl,它就在您的路上。我以为它是 Cygwin 的基础包之一,但事实并非如此,而且 Windows 版本与 SDKMAN 不兼容,尽管它可以安装它。修复:

  1. 按照 https://sdkman.io/install 卸载部分
  2. 删除 SDKMAN
  3. 关闭 Cygwin shell
  4. 重新运行 Cygwin 安装程序并确保有curl、zip、unzip 和 tar 包 已安装(检查安装说明,以防更多 自撰写本文以来添加了依赖项)
  5. 按照说明安装SDKMAN

4
投票

最近我遇到了同样的问题,原因很简单......我忘记在我的 Cygwin 上安装 cURL。希望有帮助!


2
投票

在Windows上安装SDKMAN的步骤

以管理员权限运行Windows Terminal。打开里面的 git bash 。 (Ctrl + Shift + 4)

winget install -e --id GnuWin32.Zip
mkdir ~/bin
cp /usr/bin/unzip ~/bin/zip
curl -s "https://beta.sdkman.io" | bash
source "/c/Users/ajink/.sdkman/bin/sdkman-init.sh"
sdk selfupdate force

这样就可以安装Java了。

sdk install java 17.0.2-open

完成! :)


1
投票

我最近遇到了同样的问题,我设法让它以某种方式工作。

在sdkman源文件中,我修改了.sdkman/src/sdkman-install.sh第150行。

我用经典的重定向“>”替换了下面一行的“--output”。 在我重新启动 cygwin 后,命令终于起作用了。

__sdkman_secure_curl_download "${download_url}" --output "${binary_input}"

希望有帮助!


0
投票

请记住,SDKMAN 需要 bash 环境才能运行。在Windows上,它不能本地安装;你需要 WSL 或 MSYS+MinGW。我们不再支持 Cygwin。

来源:SDKMAN安装页面(2024-02-11)

© www.soinside.com 2019 - 2024. All rights reserved.