Ok, acho que finalmente encontrei uma maneira de fazer as coisas do jeito que eu queria, e envolve usar tar
e gzip
separadamente (estou usando as ferramentas GNU, tar 1.26 e gzip 1.6). / p>
Ao usar a opção z
em tar
, ele primeiro cria o arquivo tar e, em seguida, imediatamente, ele usa o carimbo de data / hora aquele para criar o arquivo gzip. Em outras palavras, não consigo controlar o timestamp do arquivo intermediário (não encontrei nenhuma opção para fazer isso, além de alterar o mtime dos arquivos originais que estão sendo arquivados), para que o arquivo .tar.gz acabe sendo não-arquivado. determinístico.
No entanto, se eu usar primeiro o tar sem o gzip, então modifique o timestamp do arquivo tar (usando touch
por exemplo), e então eu compilei usando o gzip, eu obtive resultados determinísticos.
De qualquer forma, a resposta curta à minha pergunta seria:
-
É possível obter resultados determinísticos, mas usando tar e gzip separadamente;
-
Não parece ser possível obter resultados determinísticos ao usar
tar -z
, devido ao timestamp do arquivo tar intermediário antes da compactação gzip. Este registro de data e hora não está sob controle do usuário.