VSCode Marketplace 扩展:ZIP 损坏:未找到中央目录记录签名末尾

aal*_*lrd 10 zip marketplace visual-studio-code

我正在尝试在安装了wgetVSCode 服务器的 Linux VM 上安装从 Marketplace 下载的 VSIX 包,但出现以下错误:

$ wget -nv https://marketplace.visualstudio.com/_apis/public/gallery/publishers/llvm-vs-code-extensions/vsextensions/vscode-clangd/latest/vspackage -o vspackage.vsix
$ code --install-extension vspackage.vsix
Installing extensions on SSH: boozy-olive-harrier...
Corrupt ZIP: end of central directory record signature not found
Failed Installing Extensions: vscode-remote://ssh-remote%2Bboozy-olive-harrier/root/vspackage.vsix
Run Code Online (Sandbox Code Playgroud)

在 Windows 上使用 Firefox 下载文件并使用 VSCode 客户端 ( ref ) 内的“从 VSIX 安装...”按钮可以按预期工作。

我使用的网址是:https: //marketplace.visualstudio.com/_apis/public/gallery/publishers/llvm-vs-code-extensions/vsextensions/vscode-clangd/latest/vspackage

我比较了下载文件的 md5sum,如果我从 Windows 或 Linux 下载文件,则不会得到相同的结果:

Linux虚拟机:

  • wget
$ wget -nv https://marketplace.visualstudio.com/_apis/public/gallery/publishers/llvm-vs-code-extensions/vsextensions/vscode-clangd/latest/vspackage
2021-02-09 16:50:08 URL:https://marketplace.visualstudio.com/_apis/public/gallery/publishers/llvm-vs-code-extensions/vsextensions/vscode-clangd/latest/vspackage [1270960/1270960] -> "vspackage" [1]
$ du -sk vspackage
1244    vspackage
$ md5sum vspackage
10f6bdb1151a954a702f8a6db6f3bd52  vspackage
Run Code Online (Sandbox Code Playgroud)

视窗:

> certutil.exe -hashfile .\llvm-vs-code-extensions.vscode-clangd-0.1.9.vsix MD5
MD5 hash of .\llvm-vs-code-extensions.vscode-clangd-0.1.9.vsix:
74f82f716616796157bde8008c8e5a45
CertUtil: -hashfile command completed successfully.
Run Code Online (Sandbox Code Playgroud)
  • 电源外壳
> Invoke-WebRequest https://marketplace.visualstudio.com/_apis/public/gallery/publishers/llvm-vs-code-extensions/vsextensions/vscode-clangd/latest/vspackage -OutFile vspackage
> Get-ChildItem .\vspackage | % {[int]($_.length / 1kb)}
1383
> certutil.exe -hashfile .\vspackage MD5
MD5 hash of .\vspackage:
74f82f716616796157bde8008c8e5a45
CertUtil: -hashfile command completed successfully.
Run Code Online (Sandbox Code Playgroud)

即使下载 URL 相同,下载文件的哈希值也不同。

看来我在 Linux 上丢失了一些字节,这可以解释Corrupt ZIP错误。

有人明白我在这里缺少什么吗?

pmq*_*mqs 5

我尝试了您提供的网址

$ wget -nv https://marketplace.visualstudio.com/_apis/public/gallery/publishers/llvm-vs-code-extensions/vsextensions/vscode-clangd/latest/vspackage
2021-02-11 09:04:22 URL:https://marketplace.visualstudio.com/_apis/public/gallery/publishers/llvm-vs-code-extensions/vsextensions/vscode-clangd/latest/vspackage [1270960/1270960] -> "vspackage"
Run Code Online (Sandbox Code Playgroud)

让我们看看vspackage是什么

$ file vspackage
vspackage: gzip compressed data, max speed, from FAT filesystem (MS-DOS, OS/2, NT), original size modulo 2^32 1416661
Run Code Online (Sandbox Code Playgroud)

这不是一个 zip 文件,而是一个压缩的 gzip 文件。让我们解压缩它

$ mv vspackage vspackage.gz
$ gunzip -v vspackage.gz
vspackage.gz:    10.3% -- replaced with vspackage
Run Code Online (Sandbox Code Playgroud)

现在是什么情况vspackage

$ file vspackage
vspackage: Zip archive data, at least v2.0 to extract
Run Code Online (Sandbox Code Playgroud)

最后是一个 zip 文件。