Einige Anwendungen kommen in .pkg-Dateien und fragen nach Ihrem Administrator-Passwort, selbst wenn sie nur die Binärdatei nach /Applications kopieren.
Ich mag es, meine Anwendungen in ~/Applications zu haben, und ich mag es nicht, administrative Berechtigungen für irgendetwas zu erteilen, das nicht vom Mutterschiff stammt.
Gibt es eine Möglichkeit, die .pkg-Datei manuell zu öffnen und die Anwendung herauszuziehen? Es gibt PackageMaker in den Developer Tools, aber das scheint es nicht zu tun (es hat einige Ausgaben produziert, die mich denken lassen, dass es wirklich keine Skripte oder andere Teile im Installer gibt, nur die Anwendung).
Wenn Sie mit der rechten Maustaste darauf klicken und auf Paketinhalt anzeigen klicken, erhalten Sie einige Dateien in einem Inhaltsordner. (Hinweis: Wenn Sie Paketinhalt anzeigen nicht sehen , müssen Sie Terminal.app öffnen und ausführen pkgutil --expand mystubbornpackage.pkg path/to/expand
)
Eine davon ist eine BOM-Datei (Stückliste), die in eine Quittung umgewandelt wird, mit der Sie die App deinstallieren können. Diese Datei enthält ein Manifest von allem, was das Paket installieren wird, und wohin; Um diese Datei zu lesen, verwenden Sie den Befehl lsbom .
Die meisten Pakete (ich verwende hier Office 2008) haben auch eine Archive.pax.gz-Datei, diese enthält alles, was das Installationsprogramm in die verschiedenen Ordner verschiebt, wie in der BOM-Datei angegeben. Die meisten Apps scheinen die .app-Datei in diesem Archiv zu haben, obwohl das Ziehen nach /Applications sie möglicherweise ohne Frameworks zurücklässt, die sie ausführen muss; Sie müssen also herausfinden, welche anderen Dateien es benötigt und wo es sie benötigt, damit es funktioniert.
Darüber hinaus können alle Pakete Nachrichten protokollieren, wenn Sie Cmd-L drücken (oder die Option Installationsprotokoll aus dem Menü Fenster wählen ), können Sie sie anzeigen, während sie generiert werden. Dies gibt Ihnen möglicherweise eine Vorstellung davon, welche zusätzlichen Dinge installiert werden Zumindest sind es einige weitere Informationen, wenn Sie dem Paket nicht vertrauen.
pkgutil
wird das machen. Sie können es mit erweitern pkgutil --expand file.pkg path_to_expand
und es wird in ein Paket im Verzeichnisstil konvertiert.--expand-full
Zum Extrahieren der „Payload“-Datei verwenden, falls vorhanden stackoverflow.com/questions/41166805/…Zusätzlich zu dem, was Matthew Hall gesagt hat, können Sie auch Cmd-I in der Installer-App drücken, um zu sehen, welche Dateien das Installationsprogramm wo installieren wird.
Wenn Sie dem Installationsprogramm nicht genug vertrauen, um Administratorberechtigungen für die Installation zu erteilen, warum vertrauen Sie dann der Binärdatei in /Applications?
Pacifist lässt Sie in Paketdateien suchen. Dadurch können Sie nicht unbedingt "die Binärdatei herausziehen".
pkgutil --expand
schlug bei mir mit folgendem Fehler fehl:
Error encountered while creating .. Error 17: File exists
xar
Aber ich habe es geschafft, die Dateien stattdessen zu extrahieren mit :
xar -xvf foo.pkg
Alternativ können Sie versuchen,
sudo installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/
ODER
installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/
hdiutil create -size 200m -fs HFS+ -volname Scratch scratch.dmg
und die Dateien dann an die von Ihnen bevorzugten Speicherorte zu kopieren. Sie benötigen leider immer noch das sudo, um das Installationsprogramm auszuführen.installer: Error - This version of OS X 10.11 cannot be installed on this computer.
Nachdem Sie das Paket erfolgreich geöffnet haben, suchen Sie nach der zuvor erwähnten Datei Archive.pax.gz.
Erstellen Sie einen neuen leeren Ordner auf Ihrem Desktop und benennen Sie ihn nach Ihren Wünschen. Ich nenne sie normalerweise "xxxx" oder "zzzz" usw., um das spätere Tippen zu erleichtern.
Ziehen Sie bei gedrückter Wahltaste eine Kopie der Datei Archive.pax.gz in den neuen Ordner „xxxx“ auf Ihrem Desktop.
Wenn sich die Datei in einem schreibgeschützten Medium befindet, können Sie sie einfach ohne die Wahltaste in Ihren „xxxx“-Ordner ziehen, um eine Kopie zu erstellen.
Öffnen Sie nun Terminal.app und navigieren Sie in der Befehlszeile zu Ihrem neuen „xxxx“-Verzeichnis und listen Sie den Inhalt des Verzeichnisses auf, um zu bestätigen, dass Ihre Archive.pax.gz-Datei dort vorhanden ist:
cd ~/Desktop/xxxx
ls -al
Jetzt müssen zwei einfache Befehle eingegeben werden:
gunzip -v Archive.pax.gz
Gzip wird Ihnen mitteilen, dass es „Archive.pax.gz“ durch „Archive.pax“ ersetzt hat. Listen Sie nun den Inhalt des Verzeichnisses erneut auf, um dies zu bestätigen.
pax -r -f Archive.pax
(Sie müssen -r
und trennen -f
, da -rf
dies nicht funktioniert)
Abschließend listen Sie den Inhalt des Verzeichnisses noch einmal mit auf ls -al
. Zusätzlich zu Ihrer Archive.pax-Datei sehen Sie nun eine Verzeichnishierarchie, die wahrscheinlich ein oder mehrere Verzeichnisse enthält.
Die Dateien in dieser Verzeichnishierarchie veranschaulichen Ihnen, wo das OS X-Installationsprogramm Dateien auf Ihrem System installieren würde, als ob Ihr „xxxx“-Verzeichnis das Stammverzeichnis „/“ wäre.
Sie können diese Dateien dann manuell an ihre Ziele kopieren, wenn Sie dies wünschen.
cd ~/Desktop; cp Package.pkg/Contents/Archive.pax.gz .; gunzip -v Archive.pax.gz; pax -r -f Archive.pax
. Sie müssen nicht alles auf dieser Detailebene beschreiben.Das beste Tool zum Untersuchen von Paketdateien ist Suspicious Package . Es erlaubt Ihnen auch, Dateien aus dem Paket zu kopieren.
Es bietet nicht nur alle Informationen, die Sie in der App benötigen, sondern installiert auch ein Quick Look-Plug-in, sodass durch einfaches Auswählen der Paketdatei und Drücken der Leertaste ein Fenster mit den wichtigsten Informationen geöffnet wird.
Der Unarchiver kann dies tun; es wird das gleiche tun, pkgutil --expand
aber Drag-and-Drop verwenden. Es ist sowieso ein besserer Ersatz für Apples Archive Utility.app.
UnArchiver hat es geschafft.
UnArchiver installieren, UnArchiver öffnen; während es geöffnet ist - doppelklicken Sie auf das lästigeMAMP_MAMP_3.5.pkg
Befolgen Sie die Schritte zum Installieren von MAMP.
lhf