Wie erstelle ich eine TAR-Datei, die keine Zeitstempel für ihren Inhalt enthält?

8

Gibt es eine Möglichkeit, eine .tar -Datei zu erstellen, die die Werte von atime / ctime / mtime für ihre Dateien / Verzeichnisse auslässt?

Warum wollen wir das machen?

Wir haben einen Schritt in unserem Build-Prozess, der ein Verzeichnis von Artefakten generiert, das in eine TAR-Datei gepackt wird. Wir erwarten, dass der Build-Schritt idempotent ist - bei gleichen Eingaben erzeugt er genau jedes Mal die gleichen Dateien / Ausgaben.

Idealerweise möchten wir auch, dass der Schritt über cleane Builds bitweise idempotent ist, so dass wir Hashes aufeinanderfolgender Builds verwenden können, um zu überprüfen, ob sich nichts geändert hat. Da die TAR-Dateien für jeden Eintrag Zeitstempel (atime / ctime / mtime) enthalten, sind die von diesem Erstellungsschritt erstellten TAR-Dateien niemals bitweise identisch mit dem vorherigen, obwohl der Inhalt jeder Datei innerhalb des Archivs ist. em> bitweise identisch.

Gibt es eine Möglichkeit, ein Tarfile zu generieren, das die Zeitstempel seiner Einträge auslässt, so dass der Schritt, der das Archiv erzeugt, bitweise idempotent sein könnte? (Wir möchten andere Dateimetadaten nutzen, die tar beibehalten, z. B. Dateimodus-Bits und Symlinks.)

    
Mickalot 07.10.2015, 16:22
quelle

2 Antworten

8

GNU-tar hat ein Argument --mtime , das verwendet werden kann, um ein festes Datum im Archiv zu speichern und nicht die tatsächliche Zeit einer Datei:

%Vor%

Wenn Sie einen Tarball mit gzip komprimieren, müssen Sie auch -n angeben, um zu verhindern, dass Name und Zeitstempel des tar-Archivs gespeichert werden:

%Vor%     
Charles Duffy 06.05.2016, 20:52
quelle
-2

Wir können die TAR-Datei ohne Zeitstempel erstellen, die an sie angehängt wird.

1) Erstellen Sie eine TAR-Datei ohne Komprimierung und Zeitstempel

%Vor%

2) Erstellen Sie eine TAR-Datei mit Komprimierung und ohne Zeitstempel

%Vor%

3) Alternativer Weg

%Vor%

Hinweis: '-n' fügt Zeitstempel und Namen nicht hinzu

4) TAR-Datei extrahieren

%Vor%

Um zu überprüfen, dass Sie das tun können

%Vor%     
Thiru N 18.12.2015 08:42
quelle

Tags und Links