2016-06-02 14 views
1

Ich muss eine .dmg (a.k.a. Apple Disk Image) -Datei aktualisieren, indem Sie einen Ordner hinzufügen (es ist eine OSGI-Anwendung und ich möchte ein paar weitere Pakete hinzufügen), aber ich würde eine plattformunabhängige Lösung bevorzugen. Mein Hauptcode ist in Python geschrieben, aber ich bin auch mit Java vertraut. Ist es möglich, eine .dmg Datei so zu bearbeiten?Kann ich Ordner mit einer Python (oder Java) API in die dmg-Datei kopieren?

Beachten Sie, dass ich nicht unbedingt eine /dmg Datei erstellen muss, weil ich eine habe, aber wenn der beste Weg ist, zu entpacken und dann neu zu packen, funktioniert das auch.

+0

Geht es um ein Apple-Disk-Image? –

+0

korrigieren Sie sind – jonalv

Antwort

0

Das Erstellen von .dmg Images an anderer Stelle als auf einem Mac ist nicht so einfach, zumindest keine einfache Aufgabe mit freier Software. Und bei Non-Free ist es meistens für Mac-Software. Ich war dort und entschied, dass dies Zeitverschwendung war.

Wenn Sie auf einem Mac sind, hdiutil verwendet, ist die Art und Weise zu manipulieren .dmg

Es ist ein Python-Wrapper zum Beispiel hier https://bitbucket.org/al45tair/dmgbuild Ihnen einige Ideen zu geben.

In den meisten Fällen können Sie eine .dmg nicht direkt bearbeiten, da es sich um Bilder fester Größe AFAICR handelt. Sie können jedoch die Größe ändern: hdiutil resize -size 70m

Dann können Sie es mounten und kopieren Sie Ihre Dateien darauf.

Wenn dies eine einmalige Operation ist, ist es besser, es von Hand zu tun als IMHO zu automatisieren.

Nun gibt es ein paar Werkzeuge, die möglicherweise auf Linux aufbauen können, aber ich habe bewerten nicht und die Schlüsselfragen bei der Verwendung von hdiutils nicht ist eine .dmg zu schaffen, die immer lesbar ist auf einem Mac ... Sie könnte versuchen: - hfsplus-tools: https://apps.fedoraproject.org/packages/hfsplus-tools - libdmg-hfsplus: https://github.com/planetbeing/libdmg-hfsplus und auch in Debian. - hfsutils: in Linux-Distributionen

Siehe auch http://www.nathancoulson.com/proj_cross_tools.php für eine Liste dieser und diese Frage SO zu: How to build a dmg Mac OS X file (on a non-Mac platform)?

Wieder YMMV aber ich war nie zu 100% zuverlässig .dmg außerhalb eines erstellt bekommen kann Mac.

+0

Ich hatte Angst, dass es so war. Aber mein Anwendungsfall ist keine einmalige Operation. Ich denke, ich muss nur eine '.app' in einem Zip bereitstellen, wenn nichts anderes mehr kommt ... – jonalv

+0

Für die Verpackung von EasyEclipse (eine ziemlich populäre Eclipse-Distribution in seiner Zeit, die ich in der Vergangenheit beibehalten habe), konnten wir nur Führen Sie den Build von Installern auf dem Mac aus, um pkg und .dmg zu erstellen. Ich treid hart dann vergebens. Die Linux- und Windows-Installationsprogramme können auf allen Plattformen erstellt werden (NSIS für Windows läuft unter Linux und Mac einwandfrei). Das ist schmerzhaft, aber ich bin mir nicht sicher, ob es eine zuverlässige Alternative gibt. Zuverlässigkeit ist hier das Schlüsselwort. –

+0

Ich aktualisiere die Frage mit ein paar Hinweisen zu Linux-basierten Tools für .dmg. Sie können für Sie in einer kontrollierten Umgebung arbeiten, in der Sie eine begrenzte Variabilität von MacOSX-Versionen haben, in denen Ihre .dmg gelesen wird. –