Ich habe eine pkg-Datei, die von Install Maker für Mac erstellt wurde. Ich möchte eine Datei in pkg ersetzen. Aber ich muss dies unter Linux tun, da dies ein Teil des Download-Prozesses ist. Wenn der Benutzer mit dem Herunterladen des Dateiservers beginnt, muss eine Datei in pkg ersetzt werden. Ich habe eine Lösung, wie man pkg entpackt und eine Datei ersetzt, aber ich weiß nicht, wie man pkg wieder packt. http://emresaglam.com/blog/1035 http://ilostmynotes.blogspot.com/2012/06/mac-os-x-pkg-bom-files-package.html
99
Antworten:
Pakete sind nur .xar-Archive mit einer anderen Erweiterung und einer angegebenen Dateihierarchie. Leider ist ein Teil dieser Dateihierarchie ein cpio.gz-Archiv der tatsächlich installierbaren Dateien, und normalerweise möchten Sie dies bearbeiten. Außerdem gibt es eine Bom-Datei mit Informationen zu den Dateien in diesem cpio-Archiv und eine PackageInfo-Datei mit zusammenfassenden Informationen.
Wenn Sie wirklich nur eine der Info-Dateien bearbeiten müssen, ist das ganz einfach:
Wenn Sie jedoch die installierbaren Dateien bearbeiten müssen:
Ich glaube, Sie können mkbom (und lsbom) für die meisten Linux-Distributionen bekommen. (Wenn Sie das Gleiche tun können, macht das die Sache noch einfacher, aber ich bin mir nicht sicher, ob das fast so allgegenwärtig ist.)
quelle
cat Payload | gunzip -dc |cpio -i
könnten Sie einfach verwendentar xzvf Payload
cat Payload | gunzip -dc |cpio -i
:gunzip: unknown compression format
;0 blocks
. Ich versuche,BSD.pkg
über das OS X Yosemite-Installationspaket zu öffnen .7z x <file>.pkg
und es hat funktioniert.Hier ist ein Bash-Skript, das von abarnerts Antwort inspiriert ist und ein Paket mit dem Namen
MyPackage.pkg
in einen Unterordner mit dem Namen entpacktMyPackage_pkg
und dann den Ordner im Finder öffnet.Verwendung:
quelle
Zusätzlich zu dem, was @abarnert sagte, musste ich heute herausfinden, dass das Standarddienstprogramm
cpio
auf Mountain Lion standardmäßig ein anderes Archivformat verwendet (nicht sicher, welches), selbst wenn die Manpage angibt, dass es das alte cpio / odc-Format verwenden würde. Wenn also jemandcpio read error: bad file format
beim Versuch, seine manipulierten Pakete zu installieren, auf die Nachricht stößt, müssen Sie das Format in den Schritt zum erneuten Packen aufnehmen:quelle
@shrx Es ist mir gelungen, die BSD.pkg (Teil des Yosemite-Installationsprogramms) mit dem Befehl "pbzx" zu entpacken.
pbzx <pkg> | cpio -idmu
Der Befehl "pbzx" kann über den folgenden Link heruntergeladen werden:
quelle
Vielleicht möchten Sie in meine Gabelung von
pbzx
hier schauen : https://github.com/NiklasRosenstein/pbzxSie können damit pbzx-Dateien streamen, die nicht in ein XAR-Archiv eingebunden sind. Ich habe dies mit den neuesten XCode-Befehlszeilentools-Disk-Images (z. B. 10.12 XCode 8) erlebt.
quelle