我正在 Alpine Linux 上安装 sqlite。我下载了sqlite-autoconf-3130000.tar.gz
但tar
打不开。我试过这个回答但它不起作用。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