如何解决 Linux Alpine 上的“tar: invalid magic”错误

如何解决 Linux Alpine 上的“tar: invalid magic”错误

我正在 Alpine Linux 上安装 sqlite。我下载了sqlite-autoconf-3130000.tar.gztar打不开。我试过这个回答但它不起作用。tar给出了这个消息:

tar: invalid magic
tar: short read

我写了这些命令。

wget https://www.sqlite.org/2015/sqlite-autoconf-3090100.tar.gz
tar -zxvf sqlite-autoconf-3090100.tar.gz

答案1

尝试安装tar包(apk add tar)。 Busybox tar(默认)不支持所有功能。

答案2

这并不一定意味着 Alpine 版本tar不兼容,正如 Francesco 指出的那样,您应该真正检查文件校验和。

curl https://github.com/someproject/releases/project-1.1.0.gz | tar -xvzf我在 Dockerfile 中执行操作时遇到了这个问题。

事实证明,我忘记的是,curl只有在允许的情况下才会遵循重定向-L,因此它永远不会到达实际文件,它实际上是在下载 html,告诉它有一个重定向。添加-L允许我保存文件而不会用新容器使我的容器膨胀tar(超出由添加的“膨胀” curl)。

答案3

如果您在 docker 中使用 alpine,请断言您使用的是COPY而不是ADD在容器文件 ( Dockerfile) 中,因为ADD它将在构建层时解压缩

高山默认焦油给你提示

tar (child): sqlite-autoconf-3090100.tar.gz: Cannot read: Is a directory
tar (child): At beginning of tape, quitting now
tar (child): Error is not recoverable: exiting now

答案4

tar:invalid 魔法意味着文件已损坏。

请检查 md5sum 是否匹配...这就是我得到的:

 md5sum  sqlite-autoconf-3090100.tar.gz 
 74931054399a2d7acf35637efe8d6f45  sqlite-autoconf-3090100.tar.gz

相关内容