Como resolver o erro "tar: magic inválido" no Linux Alpine

22

Estou instalando o sqlite no Alpine Linux. Eu faço o download, sqlite-autoconf-3130000.tar.gzmas tarnão consigo abri-lo. Eu tentei esta resposta, mas não está funcionando. tardá esta mensagem:

tar: invalid magic
tar: short read

Eu escrevi esses comandos.

wget https://www.sqlite.org/2015/sqlite-autoconf-3090100.tar.gz
tar -zxvf sqlite-autoconf-3090100.tar.gz
luz do dia
fonte
Você poderia atualizar sua resposta com o comando (e seus argumentos) que tentou executar.
DarkHeart 9/08/16
1
O download foi concluído com sucesso? Se foi, ls -l sqlite-autoconf-3090100.tar.gzinforme o tamanho do arquivo 2284128 bytes.
Stephen Kitt
Além disso, atualmente é um arquivo formatado com gzip? Alguns navegadores descompactam rapidamente, o que significa que ainda pode nomear sqlite-autoconf-3090100.tar.gz, mas que o conteúdo pode realmente ser sqlite-autoconf-3090100.tar. Não faço ideia se o wget faz coisas igualmente inteligentes, mas é facilmente testado saindo da zbandeira do alcatrão.
Hennes 25/01

Respostas:

21

Tente instalar o pacote tar (apk add tar). O tar do Busybox (padrão) não suporta todos os recursos.

Jakub Jirutka
fonte
3
Encontrei o mesmo problema ao executar um comando tar em um Dockerfile e instalar o tar funcionou para mim. É meio confuso, porque se você executar o comando no shell no contêiner, ele funcionará. Mas não se for um comando RUN no Dockerfile sem ter instalado o tar primeiro. : |
chesewheel
7

Isso não significa necessariamente que a versão alpina de tarseja incompatível, como Francesco apontou que você realmente deve verificar as somas de verificação dos arquivos.

Eu me deparei com isso enquanto fazia um curl https://github.com/someproject/releases/project-1.1.0.gz | tar -xvzfno meu Dockerfile.

Acontece que eu tinha esquecido que curlsó seguirá os redirecionamentos se você permitir -L, e por isso nunca chegar ao arquivo real, estava literalmente baixando o html, informando que havia um redirecionamento. Adicionar o -Larquivo permitiu-me salvar o arquivo sem inchar meu contêiner com um novo tar(além do "inchaço" adicionado por curl).

dragon788
fonte
0

tar: magia inválida significa que o arquivo está corrompido.

Por favor, verifique o md5sum se corresponde ... é isso que eu tenho:

 md5sum  sqlite-autoconf-3090100.tar.gz 
 74931054399a2d7acf35637efe8d6f45  sqlite-autoconf-3090100.tar.gz
Francesco Colista
fonte
0

Eu peguei o mesmo problema e o resolvi, no entanto, não tenho certeza se você está enfrentando o mesmo problema.

Código que causou erro :

wget www.example.com/file.tar.gz
tar -zxvf file.tar.gz

Código que resolveu :

wget https://www.example.com/file.tar.gz
tar -zxvf file.tar.gz

Observe que eu havia esquecido o "https: //" no qual o arquivo foi baixado, mas o tar me deu o mesmo erro. Se o arquivo não for encontrado, certifique-se de usar

docker build - sem cache ...

Ryan Augustine
fonte