Kann ich Unix-Berechtigungen in einer Zip-Datei speichern (mit Apache Ameise erstellt)?

7

Ich baue ein Linux-Installationsprogramm für eine Java-Anwendung, und am Ende habe ich eine install.jar und eine setup.sh, die ich mit ant in eine Zip-Datei stecke.

Die Idee ist, dass der Benutzer die ZIP-Datei entpackt und dann setup.sh ausführt, aber das Problem ist, dass sie immer zuerst chmod setup.sh ausführen müssen, um sich selbst Ausführungsberechtigungen zu geben.

Ich möchte diesen Schritt entfernen und bin nicht sicher, ob der Problemteil ist:

  1. Das ist im Aufbau auf Windows
  2. Das ist im Aufbau mit ant-zip-Aufgabe
  3. Oder dass zips keine Berechtigungen vorberechnen können und immer ohne x-Berechtigungen entpacken.
Paul Taylor 29.11.2012, 19:46
quelle

6 Antworten

12

Sie können keine Linux / Unix-Dateiberechtigungen in einer ZIP-Datei speichern.

Bearbeiten (nach Kommentaren) Unter Verwendung des Feldes "externe Attribute" im ZIP-Header können diese Attribute in einer ZIP-Datei gespeichert werden. GNUs unzip ist anscheinend in der Lage, dieses zusätzliche Feld zu lesen und Dateiberechtigungen wiederherzustellen. Ich bin mir nicht sicher, wann dies zum ZIP-Format hinzugefügt wurde, da die frühen Versionen - die aus einer MS-DOS-Welt stammen - keine Unterstützung dafür hatten.

Das TAR-Format - ein "natives" Unix / Linux-Format - wurde so entworfen, dass es Dateiattribute enthält, und Ant kann TAR-Dateien erstellen, die Attribute auf allen Linux / Unix-Betriebssystemen beibehalten.

%Vor%     
a_horse_with_no_name 29.11.2012, 20:03
quelle
18

Sie müssen nicht zu tar-Dateien wechseln. Ich weiß nicht, warum Leute, die Ant nicht kennen, zu diesem Thema einen Rat geben.

Verwenden Sie den filemode-Parameter von zipfileset. Dokumentiert unter Ссылка

    
Blaine 16.01.2014 17:50
quelle
1

zip / unzip in modernen Linux-Distributionen erhalten Dateiberechtigungen. Aber Sie müssen sicherstellen, dass der Reißverschluss in Windows dies ehrt.

    
Humpity 19.09.2014 23:44
quelle
0

Wenn Sie eine TAR-Datei anstelle einer ZIP-Datei verwenden, sollten die Berechtigungen für Sie beibehalten werden. Die Besitzer und Gruppen der Dateien stimmen möglicherweise nicht überein, aber die Berechtigungsbits werden.

    
dj_segfault 29.11.2012 20:01
quelle
0

Ich denke, Sie können dies mit Apache Commons Compress machen.

Erster Absatz:

  

Zugriff auf interne und externe Attribute (die zum Speichern von Unix-Berechtigungen durch einige Zip-Implementierungen verwendet werden).

Sehen Sie sich die API an suche nach setUnixMode()

    
mprivat 29.11.2012 20:04
quelle
0
%Vor%

Das obige ant-Skript ruft ein Shell-Skript auf, um das Zip-Archiv zu erstellen, in dem die Berechtigungen sehr gut erhalten sind. Es funktioniert mit Ant 1.7 und höher. Allerdings habe ich noch nicht verifiziert, dieses Ameisenskript unter Windows laufen zu lassen. Das funktioniert sehr gut auf Mac.

    
Varun Bhatia 08.01.2013 08:30
quelle

Tags und Links