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

day*_*ght 39 tar alpine-linux

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

tar: invalid magic
tar: short read
Run Code Online (Sandbox Code Playgroud)

我写了这些命令。

wget https://www.sqlite.org/2015/sqlite-autoconf-3090100.tar.gz
tar -zxvf sqlite-autoconf-3090100.tar.gz
Run Code Online (Sandbox Code Playgroud)

小智 33

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

  • 在 Dockerfile 中运行 tar 命令并安装 tar 对我有用时,我遇到了同样的问题。这有点令人困惑,因为如果您在容器的 shell 中运行该命令,它会起作用。但如果它是 Dockerfile 中的 RUN 命令而没有先安装 tar,则不会。:| (4认同)

dra*_*788 25

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

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

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

  • 这实际上是正确的答案。 (4认同)