Como extrair corretamente um .tar.gz com md5.sum no solaris 10

5

Eu estou tentando extrair um gcc-4.9.0.tar.gz baixado de um dos sites espelhos do gcc. A fim de verificar a assinatura md5 antes de eu gunzip eu fiz

digest -a md5 -v gcc-4.9.0.tar.gz

que deu

md5 (gcc-4.9.0.tar.gz) = fe8786641134178ecfeee2dc7644a0d8

Isto combina com o md5.sum no diretório baixado da fonte.

Então eu fiz

gzip -dc gcc-4.9.0.tar.gz | tar xvf -

A extração começou mas logo terminou com um

 tar: directory checksum error

Eu também tentei gunzip e untar separadamente assim

 gunzip gcc-4.9.0.tar.gz

Então

tar -xvf gcc-4.9.0.tar

mas também terminou com um erro de soma de verificação.

Por favor, como resolvo isso?

    
por kplus 29.05.2018 / 15:27

2 respostas

5

Você precisa usar o gtar, geralmente é pré-instalado com o pacote SUNWgtar:

gzip -dc gcc-4.9.0.tar.gz | /usr/sfw/bin/gtar -xf -
echo $?
0

O tar não corrigido do Solaris nativo pode ter problemas com arquivos criados com o GNU tar. Veja a resposta de @schily por que.

    
por 29.05.2018 / 15:51
7

Parece que o arquivo tar está com defeito ou não é compatível com o padrão.

Observe que eu obtive o arquivo como imagem bz2 e não tive problemas com o uso de bzip2 -d gcc-4.9.0.tar.bz2 < tar tvf - .

O arquivo descompactado tem a soma de verificação md5: 6b8f599053a52e7c2076485d1ad3e747.

Agora estou buscando o arquivo .gz, vamos ver o que recebo ...

OK, aqui está a soma de verificação md5 do gcc-4.9.0.tar.gz fe8786641134178ecfeee2dc7644a0d8 que é a mesma que você vê.

Observe que seu problema geralmente acontece quando o arquivo foi criado por gtar , mas em casos raros, resulta em directory checksum error .

Se você quiser entender melhor o que está acontecendo, recomendo que use o programa tartest que vem com star .

Obtenha o mais recente schilytools de:

link

compile e execute o programa tartest/OBJ/*/tartest < gcc-4.9.0.tar .

Eu fiz isso e descobri que a razão é que o arquivo usa um "tipo de arquivo" específico do fornecedor GNU '' L 'em um cabeçalho tar.

IMPORTANTE: se o tar GNU estava em conformidade com o padrão ou pelo menos meio livre de erros, esse problema não aconteceu, pois o nome do arquivo em questão encaixava perfeitamente no esquema de nomes 100 + 255 do POSIX.1-1988. . Portanto, esta é outra dica sobre por que as pessoas devem evitar usar o tar do GNU.

Eu recomendo usar star .

Cada recurso único em star está totalmente sob controle de uma estrutura de descrição de propriedade. Se você especificar um formato de arquivo, star nunca criará conteúdo de arquivo relacionado a um formato de arquivo diferente.

Se você, por exemplo, ligar:

star -c -f out.tar -Hustar somedir

star usará um formato de arquivo POSIX.1-1988 100% compatível e, caso haja um arquivo que não se encaixe nesse formato de arquivo, star grava um aviso em vez de arquivar o arquivo usando métodos não padrão .

BTW: Aqui está o conjunto de alterações, em que a Sun adicionou suporte para esse recurso exclusivo do fornecedor:

changeset:   11995:caff1bd711f5 
user:        Rich Burridge <[email protected]> 
date:        Thu Mar 25 13:21:39 2010 -0700 

description: 
        6202362 Solaris tar can't unpack files created with GNU tar 

modified: 
   usr/src/cmd/tar/tar.c 
    
por 29.05.2018 / 16:49